在 Python 中将输入读取为数字
Python 的输入函数以字符串形式返回数据,这与其他自动将用户输入解释为字符串的编程语言不同。数字。对用户输入执行数学运算时,这可能会导致错误。下面是演示该问题的示例:
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 允许您指定输入数字的基数。如果您需要读取非十进制系统中的数字,这可能很有用。 int() 函数的第二个参数表示基数:
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()和input()。 raw_input() 的行为类似于 Python 3.x 中的 input(),以字符串形式返回输入。为了保持一致性,建议在 Python 2.x 和 Python 3.x 中都使用 input()。
以上是如何正确读取和使用Python中的数字输入?的详细内容。更多信息请关注PHP中文网其他相关文章!