在 Python 中只接受数字作为用户输入

在 Python 中只接受数字作为用户输入

Only accept Numbers as user input in Python

只接受数字作为用户输入:

  1. 使用while True循环循环,直到用户输入一个数字。
  2. 使用float()该类尝试将值转换为浮点数。
  3. 如果用户输入了一个数字,则使用该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循环。

发表评论