首页 > 解决方案 > 用户输入被拒绝并再次请求(其他解决方案不起作用)

问题描述

我已经尝试在这里使用对类似问题的回答,例如询问用户输入直到他们给出有效的回答(询问用户输入直到他们给出有效的回答)。但这并不能解决我的问题,因为它在我的用户 2 循环的后面给我的代码带来了错误,并且也停止为用户 1 输入他们的响应的名称......它只是重复用户输入字段“是/否:”。我知道如何使用 while true 是否为真......但我不确定如何使用 while True,如果用户输入可以是“y”或“n”。

有人可以建议我在这里需要做什么。我的以下功能是遍历 20 个随机名称的列表。用户选择“y”表示是,选择“n”表示否。如果他们选择“y”,则名称将附加到另一个列表中。

如果选择了“n”(或者我认为不需要,因为“y”是我需要处理的唯一数据),则不会发生任何事情。

但是...如果我希望只允许用户输入“y”或“n”,我希望他们被告知他们输入了无效条目并重试。问题是我需要重复最近的名称,直到他们输入有效的输入。

一些进一步的信息...有第二个用户,然后向他提供相同的名称以选择他们的选择(因此用户 1 'y' 输入被附加到列表中)。我这么说的原因是因为我尝试了一个 while True 语句,但如果不弄乱用户 2 的选择,我就无法让它工作(它似乎与 2 用户都选择是的任何匹配都混淆了)。所以理想情况下,我需要这个函数以后不会影响任何进一步的代码。请问有什么帮助吗?我希望我已经提供了足够的细节和足够的代码供您查看。基本上,我认为它需要一个 while True 声明,但我无法让它发挥作用。谢谢

    def boys():
global boys_answer
global new_boy_list
print(f"{user1}, are you ready, your names are coming...")
for name in range(20):
    name = (random.choice(boy_names))
    boy_names.remove(name)
    print(name)
    new_boy_list.append(name)
    boys_answer = input("y/n: ")
    if boys_answer == 'y':
        boy_list_1.append(name)

user2_boy_start()
return new_boy_list, boy_list_1,

标签: pythonfor-loopuser-input

解决方案


推荐阅读