Python 文字列の変換
ここでは Python で文字列の変換する方法についてご説明します。
Python で文字列を数値に変換する
Python で文字列を数値に変換するには、整数にするには int() コンストラクタが使えます。
int([整数にしたい文字列])のようにすると整数が生成されます。
int() を使って文字列を整数に変換してみましょう。
s = "5"
print(s, type(s))
s = int(s)
print(s, type(s))
実行結果は次のようになり、データ型が int になっていますね。
この時、渡した文字列が整数でないとエラーになってしまうのでご注意ください。
文字列が整数かどうかをチェックするには、少し工夫が必要です。
文字が全部数字の時に True を返してくれる isdigit() や isnumeric() メソッドなどもありますが、マイナスの時に False になってしまったり、² のような乗数が入っていても True を返すので、それらが True を返しても int() を使った時にエラーになる可能性があります。
ひとつの確実な方法としては、try-except を使ってエラーハンドリングをしてしまうことです。
s = "1.5"
try:
print(int(s))
except ValueError:
print("Not int")
同様に、float() を使って文字列を浮動小数点数に変換することができます。
s = "-2.6"
print(s, type(s))
s = float(s)
print(s, type(s))
実行結果は次のようになり、データ型が float になっているのがわかります。
Python で数値を文字列にする
Python で数値を文字列に変換するには、整数にするには str() コンストラクタが使えます。
str([文字列にしたい数値])のようにすると、その数値の文字列が生成されます。
str() を使って文字列を整数に変換してみましょう。
value = 1.5
print(value, type(value))
value = str(value)
print(value, type(value))
実行結果は次のようになり、データ型が str になっていますね。
「Python 文字列のフォーマット」でやったように f 文字列や format() メソッドを使っても数値を文字列に変換できます。
value = 1.5
print(value, type(value))
value = f'{value}'
print(value, type(value))
実行結果は先ほどと同じです。
Python 文字列の大文字小文字を変換する
Python の文字列には、文字を大文字小文字変換する以下のような組み込みメソッドがあります。
- upper() - 文字列を全部大文字にする
- lower() - 文字列を全部小文字にする
- capitalize() - 一番最初の文字だけ大文字にして残りは小文字にする
- title() - 各単語の最初の文字を大文字にして残りは小文字にする
- swapcase() - 大文字と小文字を入れ替える
これらのメソッドを使って、文字列の大文字小文字を変換してみます。
s = "my home"
s = s.upper()
print(s, "- upper")
s = s.lower()
print(s, "- lower")
s = s.capitalize()
print(s, "- capitalize")
s = s.title()
print(s, "- title")
s = s.swapcase()
print(s, "- swapcase")
実行結果は次のようになり、それぞれ上でご説明した通りの結果になっていますね。
MY HOME - upper
my home - lower
My home - capitalize
My Home - title
mY hOME - swapcase
以上、Python で文字列の変換する方法についてご説明しました。