Chatpter.1 - そんなあなたに「型変換」
そんなあなたに「型変換」
「型とかなんで気にしないといけないの?」という疑問は捨ててください。
そういうものなので、文句を言っても始まりません。
でも、「型変換」は超簡単!
でも、ベテランがよく言う「超簡単」は、言うほど簡単ではない気がする。
でも、ネコの世界にはベテランプログラマーはいないので大丈夫です。
1 と '1' の違いがわかるようになります👍
「型とかなんで気にしないといけないの?」という疑問は捨ててください。
そういうものなので、文句を言っても始まりません。
でも、「型変換」は超簡単!
でも、ベテランがよく言う「超簡単」は、言うほど簡単ではない気がする。
でも、ネコの世界にはベテランプログラマーはいないので大丈夫です。
種類は次のとおりです。(覚えてる?)
型 | 通り名 | 値の例 |
---|---|---|
str | エスティーアール | text name 日本語とかも◎ |
int | イント | 12 365 65535 -1 |
float | フロート | 3.14 2.2360679 ∞ 無限 |
ひとまず3種類だけピックアップしました。
これは正しく動きます。
x = 3 # 整数型(int)
y = 5 # 整数型(int)
print(x + y)
8
整数型 (int)
3
と 5
を文字列型 (str) にしてみます。
x = '3' # 文字列型(str)
y = '5' # 文字列型(str)
print(x + y)
35
文字列型 (str)
3
と 5
が繋がって 35
になりました。
結果の 35
は文字列型なので、計算には使えません。
x = '3' # 文字列型(str)
y = '5' # 文字列型(str)
answer = x + y # answer に、文字列型(str)の '35' を代入する
print(answer * 3) # answer に 3 をかける
353535
で 105
と出力したかったのですが、思ってたのと違う結果になってしまいました。
数ではないので「さんじゅう ごまん さんぜん ごひゃく さんじゅう ご」ではありません。
文字なので「さんごーさんごーさんごー」と読むことになります。
しかしこれは文字列なので、この前後に文字を繋げることができちゃいます。
x = '3' # 文字列型(str)
y = '5' # 文字列型(str)
answer = x + y # answer に、文字列型(str)の '35' を代入する
str_353535 = answer * 3
print('これは、文字列の' + str_353535 + 'なのです。')
これは、文字列の353535なのです。
353535
のところを整数型 (int) するとどうなるのか、見てみましょう。
str_353535 = 353535 # 整数型(int)
print('これは、整数の' + str_353535 + 'なのです。')
↓ こんなメッセージが出て止まっちゃいました。↓
Traceback (most recent call last):
File "Main.py", line 2, in <module>
print('これは、整数の' + str_353535 + 'なのです。')
TypeError: can only concatenate str (not "int") to str
(4行目の訳) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
型エラー : 連結できるのは str + str の時だけです。(intはダメ💢)
これが『エラーメッセージ』というものです。
言い換えると、全部文字列型じゃないと +
で繋げられませんよということです。
初めてエラーを見ちゃいましたね。親父にもぶたれたことないのにね。
なので、どんな時も 型 を合わせたほうがよさそうです。
目が疲れましたね。😿
ちょっと休憩しましょう。🏄
ではここで、型変換をやってみましょう!
わかれば簡単!
ここからは str とか int という言い方に略します。
# int -> str の例
num = 353535 # int の 353535
str_353535 = str(num) # str()の ()の中に、変数の num を入れる
print('これは、文字列の' + str_353535 + 'なのです。')
これは、文字列の353535なのです。
今度はエラーが出ずに、きちんと出力してくれました。
次はさっき 3
と 5
を足したら 35
になってしまっていたのを正しく計算して出力してみましょう。
# str -> int の例
x = '3' # str
y = '5' # str
print(int(x) + int(y)) # x と y の両方を整数型に変換!
8
str() の時と同じように、今度は int() を使うと int になります。
str() も int() も関数というものです。
これから | これに | 変換する時に使う関数 |
---|---|---|
str | int | int('35') -> 35 |
int | str | str(353535) -> '353535' |
float | int | int(3.14159265) -> 3 |
float | str | str(3.14) -> '3.14' |
str | float | float('3.14') -> 3.14 |
int | float | float(3) -> 3.0 |
上の3つはよく使います。
今憶える必要はありません。何度も使うので自然と覚えてしまいます。
でも単純に、int にしたい時は int()、str にしたい時は str() を使うとよいということです。
関数は () の中に、変数や値を入れるという使い方だけ憶えておいてください。