在 Python 中只接受数字作为用户输入
Only accept Numbers as user input in Python
只接受数字作为用户输入:
- 使用
while True
循环循环,直到用户输入一个数字。 - 使用
float()
该类尝试将值转换为浮点数。 - 如果用户输入了一个数字,则使用该
break
语句跳出循环。
主程序
while True: try: # 👇️ use int() instead of float # if you only accept integers num = float(input('Your favorite number: ')) print(num) break except ValueError: print('Please enter a number.')
我们使用while True
循环进行迭代,直到用户输入一个整数值。
输入函数接受一个可选prompt
参数并将其写入标准输出而没有尾随换行符。
然后该函数从输入中读取该行,将其转换为字符串并返回结果。
该
input()
函数始终返回一个字符串,即使用户输入了一个数字。我们使用float()
该类尝试将用户输入的值转换为浮点数。
主程序
while True: try: # 👇️ use int() instead of float # if you only accept integers num = float(input('Your favorite number: ')) print(num) break except ValueError: print('Please enter a number.')
如果转换值的尝试失败,ValueError
则引发 a 并
except
运行块。
该except
块打印“请输入数字”消息并重新运行循环。
如果用户输入一个数字,我们打印这个数字并
break
退出while
循环。break
语句跳出最内层的封闭或
for
循环while
。
如果您只接受整数值,请改用int()
该类。
主程序
while True: try: # 👇️ use int() instead of float # if you only accept integers num = int(input('Your favorite number: ')) print(num) break except ValueError: print('Please enter a number.')
请注意,如果您使用int()
该类尝试将存储浮点数的字符串转换为整数,ValueError
则会引发 a。
主程序
# ⛔️ ValueError: invalid literal for int() with base 10: '5.5' print(int('5.5')) # ✅ works print(int(5.5)) # 👉️ 5.5
float()
班级宽容得多。
主程序
print(float('5.5')) # 👉️ 5.5 print(float('5')) # 👉️ 5.0
如果您需要确保用户输入给定范围内的数字,请使用if
语句。
主程序
while True: try: num = float(input('Enter a number between 1 and 5: ')) print(num) if num < 1 or num > 5: raise ValueError break except ValueError: print('Please enter a number between 1 and 5.')
代码片段只允许用户输入一个介于1
和之间的数字5
。
如果该值不是数字、小于1
或大于5
,
ValueError
则引发 a 并重新运行循环。
一旦用户输入指定范围内的数字,将ValueError
引发 no 并跳出while
循环。