提问人:xXSnowieXx 提问时间:10/13/2023 更新时间:10/27/2023 访问量:40
Phython:添加有效输入后如何继续请求输入?
Phython: How to continue to to request for input after a valid one is added?
问:
my_names = []
while len(my_names) < 2:
my_name = input("Enter a name: ").strip().lower()
if my_name == "":
print("Minimum 2 names.")
continue # Continue to prompt for names
elif my_name in my_names:
print("No duplicate name...re-enter")
continue # Continue to prompt for names
else:
my_names.append(my_name)
print(my_names)
continue # Continue to prompt for names
我是一个初学者python程序员。我的目标是让用户输入 2 个以上的值,并且该值不能与列表中已有的值重复。在我到达最后一个 else 子句后,即使我有一个“继续”,我的报价也会退出。为什么会这样?我怎样才能做到,只有在名称列表具有 2 个以上的值并且用户输入空值之后,while 循环才会退出?
我尝试使用嵌套的 ifs,但似乎不起作用。没有继续也不起作用。想过使用 elif 而不是 else,但我不知道 i 可以作为子句的其他表达方式。试着问AI代码创建者也得不到我想要的结果。非常感谢!
答:
0赞
Kostas Nitaf
10/14/2023
#1
根据您的评论,您应该像这样更改代码:
my_names = []
while True:
my_name = input("Enter a name: ").strip().lower()
if my_name == "":
if len(my_names) <= 2:
print("Minimum 2 names.")
continue # Continue to prompt for names
else:
break # Exit Loop
elif my_name in my_names:
print("No duplicate name...re-enter")
continue # Continue to prompt for names
else:
my_names.append(my_name)
print(my_names)
continue # Continue to prompt for names
0赞
EvensF
10/27/2023
#2
也许这样的事情会让你满意?
my_names = []
finished = False
while not finished:
my_name = input("Enter a name: ").strip().lower()
if my_name == "":
finished = len(my_names) >= 2
if not finished:
print("Minimum 2 names.")
elif my_name in my_names:
print("No duplicate name… re-enter")
else:
my_names.append(my_name)
print(my_name, "added")
评论
while len(my_names) < 3