我正在尝试验证用户输入以检查它是否是字符串或数字。如果它是一个数字,我想说'请输入字母' 这是我试过的代码
transport
答案 0 :(得分:1)
在Python3中,input()
函数始终返回一个字符串,即使该字符串完全由数字组成,它仍然将其作为字符串返回,例如:"123"
。
因此,尝试在将其转换为字符串时捕获错误将永远不会起作用,因为它始终是一个字符串!
执行此操作的正确方法是使用.isdigit()
检查它是否为整数。
while True:
member = input('Are you a child or adult member? ');
if member.isdigit():
print('Please input letters')
else:
break
但是,如果您想要正确验证,则不应允许用户输入任何字符串,您应将其限制为"child"
或"adult"
:
while True:
member = input('Are you a child or adult member? ');
if member not in ('child', 'adult'):
print('Please enter a valid entry.')
else:
break