首页 > 解决方案 > 我的 if 语句不能正常工作?无法进入 elif 语句 - python

问题描述

switch = True
players = []
while True:
    user_adding = input("Would you like to add?  yes or no ")
    user_adding = user_adding.title()
    if user_adding.lower() == "yes":
        player_name = input("who do you want on the list? ")
        players.append(player_name)
        number_of_players = len(players)
    elif user_adding.lower() == "no":
        player_1 = players[0]
        print(player_1)
        print(f"There are {number_of_players}")
        switch = False

无法到达此处的 elif 语句,我不知道为什么......它可能是什么......

标签: pythonpython-3.x

解决方案


您必须输入“否”才能到达elif,但您需要先完成,yes否则代码将在以下位置引发异常players[0]

Would you like to add?  yes or no yes
who do you want on the list? Bob
Would you like to add?  yes or no no
Bob
There are 1

这段代码的一些注意事项:该switch值从未使用过,如果您稍后再使用它,也没有title()理由user_adding说明lower()

这是一个稍微简单的版本,它会在你说“不”后打破循环,并且在输入 0 个玩家时不会崩溃:

players = []
while True:
    user_adding = input("Would you like to add?  yes or no ")
    if user_adding.lower() == "yes":
        player_name = input("who do you want on the list? ")
        players.append(player_name)
    elif user_adding.lower() == "no":
        print(" ".join(players))
        print(f"There are {len(players)}")
        break
    else:
        print(f"I don't know what '{user_adding}' means!")

推荐阅读