Pythonでよく使う組込み関数（型変換、シーケンス型）

# この記事を書くきっかけ
プログラミングの問題を解くのが毎日の日課になっている初心者です。主に、Pythonを使用しています。問題を解くときはほぼ毎回組み込み関数を使うのに、一つひとつの関数の使い方をじっくりと見直したことはありませんでした。最低限、本当によく使うものだけでもちゃんと勉強しておきたいと思い、Pythonでよく使う組み込み関数をまとめてみました。

今回は型変換、シーケンス型の組み込み関数を中心にまとめました。
プログラミングの問題で本当によく使うのはint()、str()、len()、list()、range()くらいですが、他のメジャーな組み込み関数を知っておくのも大事だと思って、一緒にまとめています。

より詳しく知りたい方はPythonの公式ドキュメントを確認してみてください。

https://docs.python.org/ja/3.11/library/functions.html

# 型変換
## 一般的な型変換
### int()
**説明**：文字列や数値を整数に変換する関数です。


文字列を整数に変換する場合、基数を指定することができます。デフォルトでは10進数として解釈されますが、基数を指定することで2進数、8進数、16進数などの形式の文字列も整数に変換できます。

**名前の由来**：integer（整数）の略。

```python
# 数値を整数に変換
print(int(3.14))  # 出力: 3
print(int(5.99))  # 出力: 5

# 10進数の文字列を整数に変換
print(int('123'))  # 出力: 123

# 2進数の文字列を整数に変換
print(int('1010', 2))  # 出力: 10
```

### str()
**説明**：オブジェクトを文字列に変換する関数です。
**名前の由来**：string（文字列）の略。

```python
print(str(123))  # 出力: '123'
print(str(3.14))  # 出力: '3.14'
```

### float()
**説明**：文字列や数値を浮動小数点数に変換する関数です。
**名前の由来**：floating point number（浮動小数点数）の略。

```python
print(float('3.14'))  # 出力: 3.14
print(float(10))  # 出力: 10.0
```


## 進数変換
### bin()
**説明**：整数を2進数の文字列に変換する関数です。
**名前の由来**：binary（2進数）の略。

```python
print(bin(12))  # 出力: '0b1100'
print(bin(7))  # 出力: '0b111'
print(bin(2024))  # 出力: '0b11111101000'
```
返される文字列は、2進数の接頭辞 0b を含みます。

### oct()
**説明**：整数を8進数の文字列に変換する関数です。
**名前の由来**：octal（8進数）の略。
```python
print(oct(8))  # 出力: '0o10'
print(oct(64))  # 出力: '0o100'
```
返される文字列は、8進数の接頭辞 0o を含みます。

### hex()
**説明**：整数を16進数の文字列に変換する関数です。
**名前の由来**：hexadecimal（16進数）の略。

```python
print(hex(255))  # 出力: '0xff'
print(hex(16))  # 出力: '0x10'
```
返される文字列は、16進数の接頭辞 0x を含みます。
## Unicordポイント
### chr()
**説明**：Unicodeコードポイントから対応する文字を返す関数です。
Unicodeコードポイント（Unicode Code Point）とは、Unicode標準で定義された各文字や記号に対する一意の番号です。

Unicodeとは、世界中のすべての文字を一つの統一された体系で表現するための規格です。Unicodeコードポイントの範囲は、0 から 1,114,111（16進数なら0x10FFFF）までです。引数として0から1114111までの整数を取ります。

**名前の由来**：character（文字）の略。

```python
print(chr(81))  # 出力: 'Q'
print(chr(8364))  # 出力: '€'
print(chr(128512))  # 出力: '😀'
```
範囲外の値を指定すると ValueError が発生します。

### ord()
**説明**：文字のUnicodeコードポイントを返す関数です。
**名前の由来**：ordinal（順序数）の略。

```python
print(ord('Q'))  # 出力: 81
print(ord('€'))  # 出力: 8364
print(ord('😀'))  # 出力: 128512
```
***
https://www.tagindex.com/tool/unicode-char.html

こちらの記事が参考になります。

https://qiita.com/hiroyuki_mrp/items/f0b497394f3a5d8a8395

## その他
### format()
**説明**：文字列をフォーマットするための関数です。数値のフォーマットや、日付、文字列の整形など、様々なフォーマット指定ができます。
**基本構文**：`format(値, フォーマット指定子)` フォーマット指定子とは、整形方法を指定する文字列です。
**名前の由来**：format（形式）の意味。

```python
print(format(1234.5678, '.2f'))  # 出力: '1234.57'
print(format(255, '02x'))  # 出力: 'ff'
```
#### 数値のフォーマット
**小数点以下の桁数指定**
```python
print(format(1234.5678, '.2f'))  # 出力: '1234.57'  <- .2f：小数点以下2桁まで表示（浮動小数点）
print(format(1234.5678, '.3e'))  # 出力: '1.235e+03'  <- .3e：小数点以下3桁まで表示（指数表記）
```
#### 整数の基数変換
b：2進数
o：8進数
x：16進数（小文字）
X：16進数（大文字）

```python
print(format(255, 'b'))  # 出力: '11111111'
print(format(255, 'o'))  # 出力: '377'
print(format(255, 'x'))  # 出力: 'ff'
print(format(255, 'X'))  # 出力: 'FF'
```
#### フィールド幅とゼロ埋め
```python
print(format(123, '5d'))  # 出力: '  123'  <- 5d：5桁の幅で表示（右揃え）
print(format(123, '05d'))  # 出力: '00123'  <- 05d：5桁の幅で表示（ゼロ埋め）
```
#### 文字列のフォーマット
**文字列の幅指定**

```python
print(format('hello', '>10'))  # 出力: '     hello'  | >10：10文字幅で右揃え
print(format('hello', '<10'))  # 出力: 'hello     '  | <10：10文字幅で左揃え
print(format('hello', '^10'))  # 出力: '  hello   '  | ^10：10文字幅で中央揃え
```
***
フォーマット指定子についてはこちらも参考にしてみてください。

https://qiita.com/eric50905/items/3e3e7855484f55bc311b

### type()
**説明**：type()関数は、オブジェクトの型を返す関数です。オブジェクトの型を調べるのに使用します。

Pythonでは、すべてのデータがオブジェクトであり、そのオブジェクトには型があります。type()関数を使うことで、そのオブジェクトがどの型のインスタンスであるかを知ることができます。

**名前の由来**：type（型）の意味。

```python
print(type(123))  # 出力: <class 'int'>
print(type('hello'))  # 出力: <class 'str'>
```

# シーケンス型
### len()
**説明**：オブジェクトの長さ（要素の数）を返す関数です。リスト、タプル、文字列、辞書、セットなど、イテラブルオブジェクトの長さを返します。
**名前の由来**：length（長さ）の略。

```python
# 文字列の長さを返す
print(len('hello'))  # 出力: 5

# リストの要素数を返す
print(len([1, 2, 3]))  # 出力: 3

# タプルの要素数を返す
print(len((4, 5, 6)))  # 出力: 3

# 辞書のキーの数を返す
print(len({'a': 1, 'b': 2}))  # 出力: 2

# セットの要素数を返す
print(len({1, 2, 3}))  # 出力: 3
```

### list()
**説明**：イテラブルをリストに変換する関数です。
**名前の由来**：list（リスト）の意味。

```python
# 文字列をリストに変換
print(list('hello'))  # 出力: ['h', 'e', 'l', 'l', 'o']

# タプルをリストに変換
print(list((1, 2, 3)))  # 出力: [1, 2, 3]

# セットをリストに変換
print(list({4, 5, 6}))  # 出力: [4, 5, 6]（順序は保証されない）

# 辞書のキーをリストに変換
print(list({'a': 1, 'b': 2, 'c': 3}))  # 出力: ['a', 'b', 'c']
```

#### リストのコピー
list()関数を使用してリストを渡すと、そのリストのコピーが作成されます。
```python
original_list = [1, 2, 3]
copied_list = list(original_list)

print(copied_list)  # 出力: [1, 2, 3]
print(copied_list is original_list)  # 出力: False

# original_listとcopied_listとは、異なるオブジェクトであるということがわかります
```
### range()
**説明**：指定された範囲の数列を生成する関数です。
**名前の由来**：range（範囲）の意味。

#### 基本的な使い方
range()関数は、最大3つの引数を取ります(start、stop、step)

start（オプション）：シーケンスの開始値（デフォルトは0）。
stop：シーケンスの終了値。この値は含まれません。
step（オプション）：シーケンスの増分（デフォルトは1）。

```python
# stopのみ指定
print(list(range(5)))  # 出力: [0, 1, 2, 3, 4]

# startとstopを指定
print(list(range(2, 5)))  # 出力: [2, 3, 4]

# start, stop, stepを指定
print(list(range(2, 10, 2)))  # 出力: [2, 4, 6, 8]
```

# まとめ
Pythonでよく使う組み込み関数をまとめてみました。型変換の関数なんかはプログラミング問題でよく使うので、勉強できてよかったです。全然知らない関数もありましたが、顔見知り程度にはなれたと思います。どこかで出てきても、もう怖くないです！