2016-12-16 83 views
-2
number_of_players = int(input("Please input the number of players playing: ")) 
recorded_players = [] 
for counter in range(0, number_of_players): 
    name_of_friend = str(input("Input players first name: ")) 
    recorded_players.append(name_of_friend) 
your_name = str(input("Please enter your name: ")) 
while True: 
    import random 
    random_name = random.choice(recorded_players) 
    if recorded_players != your_name: 
     break 
friend_name = (random_name.upper()) 
selected_name = (your_name.upper()) 
gift_price = (len(friend_name)) * 2 
print(selected_name,"You have bought a gift for your friend", friend_name, "which costs £", gift_price) 

任何人都可以帮助指出我在这里的正确方向,而真正的循环不会在我想要时破坏。给我和我一样的名字,我希望这个循环可以重复多次,直到名字不一样,与两个或更多的玩家合作;“while true”语句不起作用

Please input the number of players playing: 2 
Input players first name: Bob 
Input players first name: Alice 
Please enter your name: Bob 
BOB You have bought a gift for your friend BOB which costs £ 6 

正如你所看到的,有些时候程序没有按预期工作,我似乎无法找到一个解决此问题的任何帮助,将不胜感激!

+1

您列表比较字符串。这些变量都不会在循环内部发生变化。 –

+0

@gre_gor所以我需要将列表转换为一个字符串,使其工作? –

回答

0

在你的while循环中,你要比较两个不变的变量。他们甚至是一个不同的类型。

你可能意味着做你自己比较你的随机名称:

while True: 
    import random 
    random_name = random.choice(recorded_players) 
    if random_name != your_name: 
     break