【发布时间】:2018-12-15 04:40:26
【问题描述】:
characters = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n",
"o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "-", "'", " ", "*"]
def enter_first_name():
while True:
first_name = input("Enter your first name: ").lower().rstrip().lstrip()
for i in first_name:
if i in characters:
print(i)
return first_name
else:
print("ERROR! Invalid entry.")
print(i) 用于检查它是否正常工作,但它打印的只是用户输入的任何名称的第一个字母。其目的是,例如,如果有人不小心在他们的名字中输入了一个数字(任何未包含在列表字符中的符号),它会返回“错误!无效条目”。并提示他们再次输入他们的名字。
我做错了什么以及如何检查输入中的每个字母以确保它是有效的输入?
谢谢!
【问题讨论】:
-
尝试从 if 语句中删除
return first_name,并将其放在 for 循环之外 -
首先,
characters应该是一个集合,用于 O(1) 查找,其次,如果用户输入了有效字符,您将在循环的第一次迭代后返回。
标签: python python-3.x