关于Python:Python – 输入控件

Python - input control

我在Python 3.4中的一个函数中遇到了用户输入控件的问题。

1
2
3
4
5
6
7
8
9
10
11
12
def input_name (*args):
    name_output =""
    name_input = input ("Give first name:")
    if name_input.isalpha() and name_input[0].isupper() == True:
        name_output += name_input
        return (name_output)
    else:
        print ("Wrong, do it again")
        input_name ()

name = input_name()
print(name.lower())

我试图捕获用户错误的输入 - 所以名称必须是字母,首字母必须是大写。 在将来的代码中,我将使用小写字母创建用户登录名,因此我尝试使用小的leters打印用户名作为登录名。 而且有问题。

  • 当我输入名字第一时间,这没关系
  • 当我用1个小写字母(名称)键入第一个时间名称,然后我正确地写(名称),它告诉我错误,我不明白为什么。 你能告诉我,我的错误是什么?
  • 非常感谢你展示这条道路。
    米雷克


    错误是由最后一行引起的。 由于第一次输入错误,函数返回None,因此name.lower()引发异常。 在这种情况下我不会使用递归。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    def input_name():
        while True:
            name_input = input ("Give first name:")
            if name_input.isalpha() and name_input[0].isupper():
                return name_input
            else:
                print ("Wrong, do it again")

    name = input_name()
    print(name.lower())

    希望能帮助到你!