Python で入力を数値として読み取る
Python の input 関数は、ユーザー入力を自動的に解釈する他のプログラミング言語とは異なり、データを文字列として返します。番号。これにより、ユーザー入力に対して数学的演算を実行するときにエラーが発生する可能性があります。以下は問題を示す例です:
play = True while play: x = input("Enter a number: ") # Input is taken as a string y = input("Enter a number: ") print(x + y) # Concatenates the strings instead of adding them print(x - y) # Raises a TypeError due to string subtraction print(x * y) # Multiplies the string representations as integers print(x / y) # Raises a ZeroDivisionError if y is an empty string print(x % y) # Raises a TypeError due to string modulus if input("Play again? ") == "no": # Again, input is taken as a string play = False
解決策:
この問題を解決するには、int() を使用して入力文字列を明示的に整数に変換します。 function:
x = int(input("Enter a number: ")) y = int(input("Enter a number: "))
これにより、入力データが数値として扱われ、数学的演算が実行されるようになります。
オプション: 柔軟な入力変換
Python では、入力数値の基数を指定できます。これは、10 進数以外の基数で数値を読み取る必要がある場合に便利です。 int() 関数の 2 番目のパラメータは基数を示します:
x = int(input("Enter a number (base 8): "), 8) # Reads input as an octal number y = int(input("Enter a number (base 16): "), 16) # Reads input as a hexadecimal number
入力データが指定された基数に対して無効な場合、int() 関数は ValueError を発生させます。
注:
Python 2.x には、raw_input() と raw_input() という 2 つの入力関数があります。入力()。 raw_input() は Python 3.x の input() のように動作し、入力を文字列として返します。一貫性を保つために、Python 2.x と Python 3.x の両方で input() を使用することをお勧めします。
以上がPython で数値入力を適切に読み取って使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。