要验证用户输入:
- 使用 while 循环进行迭代,直到提供的输入值有效。
- 检查输入值在每次迭代中是否有效。
- 如果该值有效,则跳出 while 循环。
# ✅ 验证用户输入的是否是整数
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')
# ----------------------------------------------
# ✅ 验证用户输入的是否是字符串
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 循环。
输入函数接受一个可选的提示参数并将其写入标准输出,而没有尾随的换行符。
然后该函数从输入中读取该行,将其转换为字符串并返回结果。
注意
,即使用户输入数字,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 语句作为输入有效。
如果需要检查多个条件,可以使用布尔值或和和运算符。
这是一个检查输入值是否至少有 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 个字符或是否在常用密码列表中。
我们使用了布尔值或运算符,因此如果满足两个条件中的任何一个,if 块就会运行。
如果密码少于5个字符或者包含在常用密码列表中,我们继续下一次迭代,再次提示用户。
如果我们需要在验证输入时检查是否满足多个条件,请使用 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
语句继续下一次迭代。