if A > B and C and D:
print("A wins")
if B>A and C and D:
print("B wins")
如何查看哪个变量包含组中最大的整数?决定谁赢了?
答案 0 :(得分:5)
你可以测试每一个:
if A > B and A > C and A > D:
或者您可以测试其他三个最大值:
if A > max(B, C, D):
但看起来你真正想要的是找出哪个玩家具有最大价值。您应该将您的球员得分存储在字典中:
players = {'A': A, 'B': B, 'C': C, 'D': D}
现在更容易找出谁赢了:
winner = max(players, key=players.get)
print(winner, 'wins')
返回players
的值,其值为最大值。您可以在整个代码中使用players
,而不是在任何地方都使用单独的变量。
要明确说明:A > B and C and D
将无法运作;布尔逻辑不能像那样工作;每个表达式都是单独测试的,因此您必须为A > B
为真,和 C
必须为true 且 D
必须为真正。如果Python中的值不是空容器而不是数字0,则认为它们是真的;如果这些都是整数分数,C
和D
如果不等于0
则为真。
答案 1 :(得分:1)
您可以使用max()
:
if A > max(B,C,D):
print("A wins")
elif B > max(A,C,D):
print("B wins")
当然还有一种功能性编程方式:
var_names = ['A', 'B', 'C', 'D']
max_var = max(zip(names, (map(eval, var_names))), key=lambda tuple: tuple[1])[0]
print("%s wins!" % max_var)
zip
和map
将var_names
列表转换为('A', A)
等元组列表,然后获取具有最高第二项的元组。从该元组中获取变量名称。