Pythonでユーザー入力を取得します

内蔵を使用しますinput()実行を一時停止し、プロンプトを表示し、コンソールから行を読み取ります。関数は常に文字列を返すため、数値または他のタイプが必要なときに値を変換します。

方法1:単一の文字列を読み取ります

ステップ1:ユーザーをプロンプトしますinput()。

name = input("Enter your name: ")

ステップ2:値を表示または使用します。フォーマットされた出力の場合、Fストリング(PEP 498)を使用します。

print(f"Hello {name}")

オプション2:タイプ変換のある番号を読み取ります

ステップ1:使用して整数に変換しますint()。

age = int(input("Enter your age: "))

ステップ2:で浮動小数点値に変換しますfloat()デシマルが予想される場合。

price = float(input("Enter the price: "))

ステップ3:悪い入力を使用して検証して再試行しますtry/except。

while True:
    raw = input("Enter a number: ")
    try:
        value = float(raw)
        break
    except ValueError:
        print("Invalid number, please try again.")

アプローチ3:1つの行で複数の値を収集します

ステップ1:数字のコンマ区切りリストを求めてください。

raw = input("Enter numbers separated by commas: ")  # e.g., 10,20,30

ステップ2:文字列を分割し、各ピースをマップしますint(またはfloat)。

numbers = list(map(int, (x.strip() for x in raw.split(","))))
print(numbers)  # [10, 20, 30]

ステップ3:スペース分離入力の場合は、代わりに白面に分割します。

nums = list(map(int, input("Enter numbers: ").split()))
print(nums)

ステップ1:ユーザーにリテラルのリストを入力するように促します[1, 2, 3]。

raw_list = input("Enter a list (e.g., [1, 2, 3]): ")

ステップ2:文字通りを安全に解析しますast.literal_eval。

import ast

try:
    data = ast.literal_eval(raw_list)  # Works for lists, tuples, dicts, numbers, strings
    if not isinstance(data, list):
        raise TypeError("Please enter a list like [1, 2, 3].")
except (ValueError, SyntaxError, TypeError) as e:
    print(f"Invalid input: {e}")
else:
    print(data)

ステップ3:オプションで数値アイテムを強制します。

参照:

if not all(isinstance(x, (int, float)) for x in data):
    print("List must contain only numbers.")

パス5:複数の入力をインタラクティブに収集する(マルチプロムプト)

ステップ1:空のリストを初期化します。

values = []

ステップ2:繰り返し促し、センチネルのように停止しますqまたは空の行。

print("Enter numbers (press Enter with no text or type 'q' to finish).")
while True:
    raw = input("Value: ").strip()
    if raw in {"", "q", "Q"}:
        break
    try:
        values.append(float(raw))
    except ValueError:
        print("Not a number, try again.")
print(values)

実用的なヒント

  • エラーを減らすために、フォーマットについてプロンプトを明示します。
  • 微妙な障害を避けるために、解析する前にホワイトスペースをストリップします。
  • ユーザー向けの数値入力の検証ループを優先します。
  • f-stringsを使用して、明確で読みやすいメッセージと結果を使用します。

これらのパターンを使用すると、コンソールから文字列、数字、およびリストを確実にキャプチャでき、クラッシュせずに無効な入力を処理できます。から始めますinput()、必要に応じて変換および検証し、ユーザーにデータを入力する方法に一致するコレクション戦略を選択します。

Related Posts