概要

Pythonraw_input関数は、ユーザーからの入力を文字列として取得するためにPython 2で使用されていた関数です。この関数は、ユーザーが入力した値を常に文字列として返しますが、Python 3ではraw_inputが廃止され、代わりにinput関数が使用されています。この記事では、raw_inputの使い方やPython 3のinput関数との違いについて解説します。

raw_input関数の基本構文

Python 2でのraw_input関数の基本構文は以下の通りです。

user_input = raw_input([prompt])

パラメータ

  • prompt
    (オプション)ユーザーに入力を促すメッセージを表示するための文字列です。このメッセージは、ユーザーが入力を開始する前にコンソールに表示されます。

戻り値

  • raw_input関数は、ユーザーが入力したテキストを文字列として返します。数値が入力された場合でも、返されるのは文字列であるため、必要に応じて型変換が必要です。

使用例

以下はPython 2におけるraw_input関数の基本的な使用例です。

name = raw_input("あなたの名前を入力してください: ")
print("こんにちは、" + name + "さん!")

このコードを実行すると、次のように表示されます。

あなたの名前を入力してください: Alice
こんにちは、Aliceさん!

ここでは、ユーザーから名前を入力させ、その名前を使って挨拶メッセージを表示しています。

型変換

raw_input関数は常に文字列を返すため、数値として使用したい場合は型変換が必要です。例えば、年齢を入力して計算を行いたい場合、以下のようにint()関数を使って文字列を整数に変換します。

age = int(raw_input("あなたの年齢を入力してください: "))
print("あなたは来年、" + str(age + 1) + "歳になります。")

出力例:

あなたの年齢を入力してください: 30
あなたは来年、31歳になります。

Python 2のinputとraw_inputの違い

Python 2にはinputという別の関数もありますが、input関数は入力されたデータを式として評価し、結果を返します。これに対し、raw_inputは入力を常に文字列として処理します。

Python 2のinput関数の例

result = input("数式を入力してください: ")
print("結果は:", result)

例えば、次のように数式を入力すると、その結果が計算されて返されます。

数式を入力してください: 2 + 3
結果は: 5

ただし、input関数にはセキュリティリスクがあります。悪意のあるコードが入力されると、意図しない動作が行われる可能性があるため、ユーザーからの入力を安全に扱うにはraw_inputを使用する方が一般的でした。

Python 3でのinput関数

Python 3ではraw_inputが廃止され、input関数がraw_inputと同じ役割を担っています。つまり、Python 3のinput関数は常に文字列を返すため、Python 2のraw_inputと同じ動作をします。

Python 3での基本的な使用例

name = input("あなたの名前を入力してください: ")
print("こんにちは、" + name + "さん!")

この例は、Python 3のinput関数を使ったもので、Python 2のraw_inputと同様に動作します。ユーザーが入力した内容は常に文字列として返されます。

Python 3での型変換

Python 3では、input関数で取得した入力を数値として扱いたい場合、同様に型変換が必要です。

age = int(input("あなたの年齢を入力してください: "))
print("あなたは来年、" + str(age + 1) + "歳になります。")

この場合も、入力された値を整数に変換して計算を行っています。

Python 2からPython 3への移行

Python 2とPython 3では、inputの挙動が異なるため、Python 2のコードをPython 3に移行する際には注意が必要です。具体的には、Python 2でinputを使用していたコードは、Python 3では意図しない動作をする可能性があるため、適切な修正が必要です。 例えば、Python 2でraw_inputを使っていたコードは、単純にinputに置き換えるだけでPython 3でも動作します。しかし、Python 2のinput関数を使っていた場合は、文字列入力に対してエラーが発生する可能性があるため、適切な型チェックや変換が必要です。

Python 2からPython 3へのコード変換例

# `Python` 2
name = raw_input("名前を入力してください: ")
age = input("年齢を入力してください: ")
# `Python` 3に変換
name = input("名前を入力してください: ")
age = int(input("年齢を入力してください: "))

まとめ

Python 2のraw_input関数は、ユーザーからの入力を文字列として取得するためのシンプルな関数でしたが、Python 3ではinput関数に置き換えられています。raw_inputは常に文字列を返し、Python 3のinput関数も同様に動作します。Python 2からPython 3に移行する際には、inputの挙動に注意して適切にコードを修正することが重要です。これにより、ユーザー入力を安全かつ適切に扱うことができます。