如何循环用户定义的函数?

时间:2017-10-16 06:07:07

标签: python-3.x

我有这个程序:

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
>>>

我在程序中遗漏了什么?...谢谢

2 个答案:

答案 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