我在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打印用户名作为登录名。而且有问题。
非常感谢您展示路径。 米雷克
答案 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())
希望它有所帮助!