我有这个程序:
word = input('Customer Name: ')
def validateCustomerName(word):
while True:
if all(x.isalpha() or x.isspace() for x in word):
return True
else:
print('invalid name')
return False
validateCustomerName(word)
我希望程序重复询问用户输入他们的姓名,如果他们的名字输入错误,例如它的编号是否已编号。 如果名称有效则返回True,无效
则返回False输出:
Customer Name: joe 123
invalid name
预期产出:
Customer Name: joe 123
invalid name
Customer Name: joe han
>>>
我在程序中遗漏了什么?...谢谢
答案 0 :(得分:1)
函数定义中的任何return
语句都将退出封闭函数,返回(可选)返回值。
考虑到这一点,你可以重构一下:
def validateCustomerName(word):
if all(x.isalpha() or x.isspace() for x in word):
return True
else:
print('invalid name')
return False
while True:
word = input('Customer Name: ')
if validateCustomerName(word):
break
答案 1 :(得分:1)
这应该符合您的目的:
def validateCustomerName(word):
while True:
if all(x.isalpha() or x.isspace() for x in word):
return True
else:
print('invalid name')
return False
while (True):
word = input('Customer Name: ')
status = validateCustomerName(word)
if status:
print ("Status is:",status)
break