原文: 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 つのプロジェクトを作成します。

ここまで読んでくださってありがとうございます、そして、コーディングを楽しみましょうね!