原文: Python Convert String to Int – How to Cast a String in Python
プログラミングの作業中、データの型の変換が必要となることがあるでしょう。
あるデータ型を他のデータ型に変換する知識・経験は、情報を扱うときに、プログラマーにとって、データに対して柔軟に対応できる力となります。
プログラミング言語 Python には、型を変換 (キャスト) する多様な方法が組み込まれています。
この記事では、文字列型を整数型に変換する方法について学べます。
それでは、詳しく見てきましょう。
Python でのデータの種類
Python は、様々なデータ型をサポートしています。
データの型は、コンピュータプログラムで使われるさまざまなタイプのデータを指定、表現、区別するのに使われます。
また、あるデータ型で利用できる処理が、別のデータ型では利用できないといったように、データ型によって利用できる処理が異なります。
データの型の一例として、文字列型があります。
文字列型は、テキストベースの情報を扱うのに使われる文字列です。
文字列型は以下のコードのように、シングル、あるいはダブルクォーテーションで囲われます。
fave_phrase = "Hello world!"
#Hello world! はダブルクォーテーションで囲まれているので文字列です。
int (integer) は、整数です。
整数は、数値データを表すのに使われます。そして整数は、+、-、×、÷といった四則演算で使うことができます。
整数は、シングル、あるいはダブルクォーテーションで囲われません。
fave_number = 7
#7 は整数型です
#"7" は、数字に見えますが、整数型ではなく文字列型です。
#理由はダブルクォーテーションで囲まれているからです。
データ型の変換
データを保存するとき、あるいは、ユーザー入力データをある型で受け取るとき、そのデータにさまざまな操作を行う必要もあるでしょう。
型データによって、対応できる処理とできない処理があるので、データ型を変更する必要があります。
あるデータ型から他のデータ型への変換は、型のコンバージョンあるいはキャストとも呼ばれます。多くのプログラミング言語では、ある型から他の型への変換を組み込み機能として提供しています。
Python で文字列型を整数型に変換する方法
Python で文字列型を整数型へ変換するためには、組み込み関数である int()
を使います。
この組み込み関数は、型変換したい文字列を引数として、数値としての値を戻します。
一般的な文法は、int("str")
となります。
それでは、数値が文字列型となっている次の例を参考に見ていきましょう。
#数字 7 の文字列型
print("7")
#型を確認するメソッド type() を用いてチェックしてみましょう
print(type("7"))
#出力結果
#7
#<class 'str'>
文字列の状態の数字を型変換するために、以下のように int()
関数を使います。
#文字列型から整数型へ型変換します
print(int("7"))
#型を確認するメソッドを用いてデータの型をチェックしてみましょう
print(type(int("7")))
#出力結果
#7
#<class 'int'>
文字列型を整数型に変換する事例
例えば、利用者の年齢を計算したいとしましょう。そのためには利用者からの入力を受け取ります。入力される型は、常に文字列型となります。
数字で入力されたとしても、受け取る型は <class 'str'>
になります。
もし、入力された数字を他の数字から引き算するなど、入力時に計算処理を実行したいならば、文字列型では、計算処理を行えないのでエラーとなります。
以下のサンプルコードをご覧ください。
current_year = 2021
#利用者に誕生年を入力してもらいます。
user_birth_year_input = input("何年に生まれましたか? ")
#現在の年から利用者が入力した年を引きます。
user_age = current_year - user_birth_year_input
print(user_age)
#結果
#何年に生まれましたか? 1993
#Traceback (most recent call last):
# File "demo.py", line 9, in <module>
# user_age = current_year - user_birth_year_input
#TypeError: unsupported operand type(s) for -: 'int' and 'str'
整数型と文字列型の引き算は実行できないというエラーとなります。
type()
を使うことで、入力されたデータ型を確認できます。
current_year = 2021
#利用者に誕生年を入力してもらいます。
user_birth_year_input = input("何年に生まれましたか? ")
print(type(user_birth_year_input))
#結果
#何年に生まれましたか? 1993
#<class 'str'>
このエラーを避けるためには、利用者の入力を整数型に変換し、新しい変数内に変換したデータを保存します。
current_year = 2021
#利用者に誕生年を入力してもらいます。
user_birth_year_input = input("何年に生まれましたか? ")
#組み込み関数の int() を利用して、利用者が入力した数字を変換し、新しく作成した変数に保存します。
user_birth_year = int(user_birth_year_input)
#現在の年から利用者が入力した年を引きます。
user_age = current_year - user_birth_year
print(user_age)
#結果
#何年に生まれましたか? 1993
#28
最後に
Python で文字型から数字型へ変換する方法が分かりましたね。
もし、Python をもっと学びたいならば、freeCodeCamp に Python の認定講座があります。
Python の基礎から始めて、リレーショナルデータベースやデータ構造といった高度なトピックへと進んでいきます。最後には、実践へとつなげるために、5 つのプロジェクトを作成します。
ここまで読んでくださってありがとうございます、そして、コーディングを楽しみましょうね!