我希望用户从6名球员的菜单中选择两名球员,这些球员将玩一场网球比赛。
我试着制作了一个带有子菜单的菜单,但它就是变得复杂和混乱。
def player1():
print("You chose player 1, please choose another player")
def player2():
print("You chose player 2, please choose another player")
def player3():
print("You chose player 3, please choose another player")
def player4():
print("You chose player 4, please choose another player")
def player5():
print("You chose player 5, please choose another player")
def player6():
print("You chose player 6, please choose another player")
Player_select = {
1: player1,
2: player2,
3: player3,
4: player4,
5: player5,
6: player6
}
Selection = 0
while (Selection != 7):
print("1. player1")
print("2. player2")
print("3. player3")
print("4. player4")
print("5. player5")
print("6. player6")
print("7. Quit")
Selection = int(input("Please choose two players: "))
if (Selection >= 0) and (Selection < 7):
Player_select[Selection]()
Selection = Selection - 1结果是while循环持续的时间比我想要的要长。我想让用户选择两个玩家,这意味着两次迭代?另外,我希望用户选择的播放器在第二次迭代中不再作为选择出现。
发布于 2019-06-09 20:05:21
def player1():
print("You chose player 1, please choose another player")
def player2():
print("You chose player 2, please choose another player")
def player3():
print("You chose player 3, please choose another player")
def player4():
print("You chose player 4, please choose another player")
def player5():
print("You chose player 5, please choose another player")
def player6():
print("You chose player 6, please choose another player")
Player_select = {
1: player1,
2: player2,
3: player3,
4: player4,
5: player5,
6: player6
}
Selection = 0
count = 0
while (count < 2):
count += 1
for k in Player_select:
print(str(k) +". player"+str(k))
Selection = int(input("Please choose two players: "))
if (Selection >= 0) and (Selection < 7):
Player_select[Selection]()
del Player_select[Selection]一旦被选中,这将从字典中删除该播放器。您能告诉我为什么在while循环结束时将选择减少1吗?如果我输入7退出,循环执行7-1,因此不会退出。
发布于 2019-06-09 20:11:30
这里有一个很好的简短答案,其中有一个while循环:
players = ["player1", "player2", 'player3', 'player4', 'player5', 'player6']
def print_player(x):
print("You chose player:", str(x), "-", players[x-1])
for id, player in enumerate(players, 1):
print(str(id) + '. ' + player)
chosen_players = []
while len(chosen_players) != 2:
selection = int(input("Please choose a player: "))
if selection in range(1, len(players)):
chosen_players.append(selection)
print_player(selection)
else:
print('Invalid number, choose again')
print('Nice you selected two players:')
print([players[x-1] for x in chosen_players])https://stackoverflow.com/questions/56514333
复制相似问题