今日の記事では、文字列型と数値を相互する方法を簡単にまとめました!
「数値と文字列を相互に変換したい」
「文字列を数値に変換しようとしたら、エラーが出てしまった」
などといったお悩みの方へ向けて、
【基礎】なぜ変換が必要なの?
【基礎】文字列型と数値を変換する方法
【応用】int型とfloat型
【応用】16進数への変換
【応用】リストの値を変換する方法
といった内容で解説致します。
本記事で簡単な型変換は一通りできますので、ぜひ最後までお付き合いください!
※ この記事のコードはPython 3.7, Ubuntu 18.04で動作確認しました。
本記事を読む前に、Pythonがどんなプログラミング言語なのかをおさらいしておきたい人は次の記事を参考にしてください。
→ Pythonとは?特徴やできること、活用例をわかりやすく簡単に解説
なお、その他のPythonの記事についてはこちらにまとめています。
なぜ変換が必要なの?
まずはじめに、以下の例をご確認ください
print("Hello python" + 3)
“Hello python3″と表示することを期待しているのですが、これを実行しようとすると、以下のようなエラーが発生してしまいます。
TypeError: cannot concatenate 'str' and 'int' objects
これは、文字列型と数値をそのまま結合させようとした場合のエラーです。
こういった時、型変換を行うことで問題を解決する事ができます。
型変換を行うことで、文字列型や数値型それぞれでしかできない処理をきちんと実行できるようになるのです。
以降では、その具体的な方法を紹介していきます。
文字列型と数値を変換する方法
まずはじめに、文字列型と数値を変換する方法を紹介します。
手順は簡単、文字列にしたい値をstr()で囲い、数値にしたい文字列をint()で囲うだけです。
実際に先ほどの例をエラーが起きないように変換してみましょう。
print("Hello python" + str(3))
これで数値の3を文字列の”3″に変換できます。
実行結果:
Hello python3
今度は、文字列を数値に変換する例を確認しましょう。
val1 = 10 val2 = "20" print(val1 + int(val2))
これで、文字列の”20″を数値の20に変換できます。
実行すると、計算ができるようになります。
実行結果:
30
int型とfloat型
str型とint型の変換方法がわかったところで、以下の例をご覧ください。
val = "1.0" print(int(val))
こちらを実行するとどのようになるでしょうか?
数値の「1.0」になることを期待してしまいますが、実はエラーとなってしまいます。
実行結果:
ValueError: invalid literal for int() with base 10: '1.00'
int型は浮動小数を表現することはできないのです。
ここで登場するのがfloat型です。
float型はint型同様、数値を表す型ですが、float型は浮動小数を扱う為の型です。
文字列(str)型から変換する時は、int()と同じようにfloat()に値を入れることで変換できます。
val = "1.0" print(float(val))
実行結果:
1.0
リストの値を変換する方法
一通り文字列と数値の変換が理解できたところで、実際に型変換を扱う例を紹介いたします。
csvファイルなどから値を取得し、以下のようなリストができたとしましょう。
["10", "20", "30", "40", "50"]
このリストは文字列型で格納されていますね。
これを数値に変換してみましょう。
実装例:
ls = ["10", "20", "30", "40", "50"] print(ls) ls = [int(i) for i in ls] # ここでリストの中の値をint型へ変換しています。 print(ls)
実行結果:
['10', '20', '30', '40', '50'] [10, 20, 30, 40, 50]
型変換ができました。
もちろんstr, int, floatの相互変換が可能です。
まとめ
いかがでしたでしょうか?
今回の記事では、
【基礎】なぜ変換が必要なの?
【基礎】文字列型と数値を変換する方法
【応用】int型とfloat型
【応用】16進数への変換
【応用】リストの値を変換する方法
について紹介致しました。
この3つの型変換さえ覚えておけば、基礎としては十分やっていけるかと思います。
ぜひここで覚えて、今後に役立ててください!