0

我是编码新手,几天来我一直在尝试解决这个问题。我已经尝试了许多资源(包括此处的帖子),但没有针对我的特定问题的任何内容。

我正在尝试使用在 for 循环中缩进的 while True 语句。for 循环从列表中随机选择 20 个男孩名字并打印到终端。我有一个用户输入要求输入“y”或“n”,并且因为用户输入始终是真实的,所以我无法确保用户输入的无效响应被识别为不真实(FALSEY)。因此,很难让用户在输入有效输入之前一直显示相同的名称。我尝试使用 not 方法将用户输入更改为 false,但这仍然使 for 循环中断。尽管我可能一直在编码错误。下面是代码片段,如果有人能建议我如何让 while true 工作(我认为它需要在 boy_answer = input("y/n: ") 行之后进行),将不胜感激。

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,

例如,下面是我尝试过的一种方法,但这只是在名字出现后停止将名字打印到终端。有人可以帮忙回答这个问题吗,这样如果用户输入除“y”或“n”之外的任何内容,它就不会让他们继续。

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)
        while True:
            try:
                boys_answer = input("y/n: ")
                boys_answer == 'y'
                boy_list_1.append(name)
                boys_answer = not boys_answer
            except ValueError:
                print("Sorry, bad input")
                continue

    user2_boy_start()
    return new_boy_list, boy_list_1,
4

0 回答 0