Python3 input() 関数
input()関数は標準入力(キーボード)からユーザーの入力を受け取り、返すのは文字列(str)型。
注意:
input()何を入力しても、戻り値は常に文字列です。数値計算を行う必要がある場合は、手動で型変換を行う必要があります(例:int()、float())。
関数構文
input([prompt])
パラメータの説明:
- prompt:オプション、ユーザーに入力を促すメッセージ
実例
input()ユーザーの入力を受け取り、文字列として返します。
input() 基本の使い方
>>>name = input("あなたの名前を入力してください:")あなたの名前を入力してください:小明
>>>print("こんにちは、", name)こんにちは、小明
数字を入力しても、戻り値は依然として文字列です。
型の問題(よくある落とし穴)
>>>a = input("数字を入力してください:")数字を入力してください:123
>>> type(a)
<class 'str'>
注意:input() で直接取得した値は数値計算に参加できません。
誤った例:
>>> a = input("请输入数字:")
>>> print(a + 1)
TypeError: can only concatenate str (not "int") to str
正しい書き方:
>>> a = int(input("请输入数字:"))
>>> print(a + 1)
input() で複数の値を受け取る
split()入力はスペースで区切られ、文字列の配列に分割されます。
実例
# 複数の値を入力(スペース区切り)
a, b, c = input("数字を3つ入力してください:").split()
# 型を変換
a = int(a)
b = int(b)
c = int(c)
print(a, b, c)
a, b, c = input("数字を3つ入力してください:").split()
# 型を変換
a = int(a)
b = int(b)
c = int(c)
print(a, b, c)
使用するmap()一度に型変換を完了でき、コードがより簡潔になります。
推奨される書き方(上級)
# 分割 + 変換を一度に完了
a, b, c = map(int, input("数字を3つ入力してください:").split())
print(a, b, c)
a, b, c = map(int, input("数字を3つ入力してください:").split())
print(a, b, c)
実践:三角形の面積を計算する
# 三角形の3辺を入力
a, b, c = map(int, input("三角形の3辺の長さを入力してください:").split())
# 半周長を計算
p = (a + b + c) / 2
# ヘロンの公式で面積を計算
s = (p * (p - a) * (p - b) * (p - c)) ** 0.5
print("三角形の面積:", format(s, '.2f'))
a, b, c = map(int, input("三角形の3辺の長さを入力してください:").split())
# 半周長を計算
p = (a + b + c) / 2
# ヘロンの公式で面積を計算
s = (p * (p - a) * (p - b) * (p - c)) ** 0.5
print("三角形の面積:", format(s, '.2f'))
実行結果:
请输入三角形三边的长:3 4 5 三角形面积为: 6.00
よくある使い方のまとめ
input("提示"):プロンプト付き入力input():プロンプトなし入力int(input()):整数を取得float(input()):浮動小数点数を取得input().split():複数の文字列を取得map(int, input().split()):複数の整数を取得(推奨)
Python2 と Python3 の違い
Python2 の場合:
raw_input():文字列を返すinput():式を実行する(セキュリティリスクがある)
Python3 の場合:
- のみが残る
input() - 一律に文字列を返し、より安全で理解しやすい
核心のまとめ
一言でまとめると:
input() = 获取输入 + 返回字符串
- デフォルトでは文字列を返す
- 計算に参加させるには型変換が必須
- 複数の入力には split() + map() を推奨
その他の拡張