Python:随机琐事琐事问题/答案,在参数中
我是学习 python 的新手,想运行一些琐事。基本上,我想从列表中随机问一个问题,然后使用“输入”运算符,判断用户输入的 Y/N 是否正确。我一直在确定如何检查它是否正确。也许我的(不正确的)代码可以更好地解释。
import random
Players = ['Patrice Evra', 'Rio Ferdinand', 'Sergio Ramos', 'Gerard Pique']
Clubs = ['Manchester United', 'Nice', 'Monaco', 'Marseille', 'West Ham United', 'Sevilla', 'Real Madrid', 'Barcelona']
Ramos = ['Sevilla', 'Real Madrid']
Evra = ['Manchester United', 'Nice', 'Monaco', 'Marseille', 'West Ham United']
Ferdinand = ['Leeds United', 'Manchester United']
Pique = ['Barcelona', 'Manchester United']
print('Did ' + random.choice(Players) + ' play for ' + random.choice(Clubs) + ' ? Y/N')
answer = input()
这就是我被卡住的地方,甚至不确定这是否是解决此问题的正确方法。谢谢您的帮助。
回答
最重要的是,您必须保存您的随机选择,以便稍后进行验证。所以你应该在之前分配两个变量:
player = random.choice(Players)
club = random.choice(Clubs)
print('Did ' + player + ' play for ' + club + ' ? Y/N')
然后你可以通过 if 语句来验证自己。但更快(更复杂)的方法是:
did_play = club in [Evra, Ferdinand, Ramos, Pique][Players.index(player)]
这将是更好的存储变量Evra,Ferdinand,Ramos和Pique 不同的,但现在应该到的伎俩。
存储这些变量的更好方法是在这样的字典中:
player_clubs = {
"Patrice Evra": ['Manchester United', 'Nice', 'Monaco', 'Marseille', 'West Ham United'],
"Rio Ferdinand": ['Leeds United', 'Manchester United'],
"Sergio Ramos": ['Sevilla', 'Real Madrid'],
"Gerard Pique": ['Barcelona', 'Manchester United']
}
这样您就可以更轻松地检查他们是否在某个俱乐部踢球,例如:
did_play = club in player_clubs[player]