在 Python 中验证用户输入
Validating user input in Python
验证用户输入:
- 使用
while
循环迭代,直到提供的输入值有效。 - 检查输入值在每次迭代中是否有效。
- 如果该值有效,则跳出
while
循环。
主程序
# ✅ Validating integer user input num = 0 while True: try: num = int(input("Enter an integer 1-10: ")) except ValueError: print("Please enter a valid integer 1-10") continue if num >= 1 and num <= 10: print(f'You entered: {num}') break else: print('The integer must be in the range 1-10') # ---------------------------------------------- # ✅ Validating string user input password = '' while True: password = input('Enter your password: ') if len(password) < 5: print('Password too short') continue else: print(f'You entered {password}') break print(password)
第一个示例在while
循环中验证数字用户输入。
如果try
块成功完成,则用户输入一个整数。
主程序
num = 0 while True: try: num = int(input("Enter an integer 1-10: ")) except ValueError: print("Please enter a valid integer 1-10") continue if num >= 1 and num <= 10: print(f'You entered: {num}') break else: print('The integer must be in the range 1-10')
该if
语句检查整数是否在 1-10 范围内,如果满足条件,则跳出while
循环。
break
语句跳出最内层的封闭或
for
循环while
。
如果整数不在指定范围内,该else
块将运行并打印一条消息。
如果用户没有输入整数,except
块运行,我们使用
continue
语句再次提示用户。
该continue
语句继续循环的下一次迭代。
while
当在循环中验证用户输入时,我们在输入无效时使用语句,例如在块或语句中。 continue
except
if
如果输入有效,我们使用break
语句退出while
循环。
输入函数接受一个可选prompt
参数并将其写入标准输出而没有尾随换行符。
然后该函数从输入中读取该行,将其转换为字符串并返回结果。
请注意,该
input()
函数始终保证返回一个字符串,即使用户输入了一个数字。您可以在验证用户输入字符串时使用相同的方法。
下面是一个提示用户输入的示例,直到他们输入至少 5 个字符长的值。
主程序
password = '' while True: password = input('Enter your password: ') if len(password) < 5: print('Password too short') continue else: print(f'You entered {password}') break print(password)
循环不断迭代,while
直到用户输入一个长度至少为 5 的值。
如果值太短,我们使用
continue
语句继续下一次迭代。如果该值至少有 5 个字符长,我们使用该break
语句作为输入有效。
如果需要检查多个条件,可以使用布尔值or
和运算符。and
下面是一个示例,它检查输入值是否至少有 5 个字符长并且不在值列表中。
主程序
password = '' common_passwords = ['abcde', 'asdfg'] while True: password = input('Enter your password: ') if len(password) < 5 or password in common_passwords: print('Pick a strong password') continue else: print(f'You entered {password}') break print(password)
该if
语句检查密码是否少于5
字符或是否在常用密码列表中。
我们使用了布尔or
运算符,因此if
如果满足两个条件中的任何一个,该块就会运行。
如果密码少于
5
字符数或包含在常用密码列表中,我们continue
将进行下一次迭代并再次提示用户。and
如果您需要在验证输入时检查是否满足多个条件,请使用布尔运算符。
主程序
password = '' common_passwords = ['abcde', 'asdfg'] while True: password = input('Enter your password: ') if len(password) > 5 and password not in common_passwords: print(f'You entered {password}') break else: print('Pick a strong password') continue print(password)
我们使用了and
布尔运算符,因此要使if
块运行,必须满足两个条件。
密码必须比5
字符长,并且不能出现在常用密码列表中。
如果满足条件,我们使用break
语句退出
while True
循环。
如果不满足条件,我们使用该continue
语句继续下一次迭代。