Python - 输入控件

时间:2015-09-04 22:22:02

标签: python

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

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. 当我输入名字第一时间时,没关系
  2. 当我输入带有1个小写字母(名称)的第一个名字然后我写得正确(名称)时,它告诉我错误,我不明白为什么。你能告诉我,我的错误是什么?
  3. 非常感谢您展示路径。 米雷克

1 个答案:

答案 0 :(得分:1)

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

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

希望它有所帮助!