Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何找出哪个变量的值最大_Python - Fatal编程技术网

Python 如何找出哪个变量的值最大

Python 如何找出哪个变量的值最大,python,Python,如何检查并查看哪个变量包含组中最大的整数?决定谁获胜?您可以测试每个人: if A > B and C and D: print("A wins") if B>A and C and D: print("B wins") 或者您可以只测试其他三个的最大值: if A > B and A > C and A > D: 但看起来你真正想要的是找出哪个玩家的价值最大。您应该将玩家分数存储在字典中: if A > max(B, C, D): 现在更容

如何检查并查看哪个变量包含组中最大的整数?决定谁获胜?

您可以测试每个人:

if A > B and C and D:
   print("A wins")
if B>A and C and D:
   print("B wins")
或者您可以只测试其他三个的最大值:

if A > B and A > C and A > D:
但看起来你真正想要的是找出哪个玩家的价值最大。您应该将玩家分数存储在字典中:

if A > max(B, C, D):
现在更容易找到谁赢了:

players = {'A': A, 'B': B, 'C': C, 'D': D}
这将返回值为最大值的
玩家的密钥。您可以在整个代码中使用
播放器
,而不是到处都有单独的变量

明确地说:
A>B和C以及D
永远不会起作用;布尔逻辑不是这样工作的;每个表达式都是单独测试的,因此您得到的
A>B
必须为真,
C
必须为真,
D
必须为真。如果Python中的值不是空容器,而不是数字0,则认为它们为真;如果这些都是整数分,
C
D
如果不等于
0
,您可以使用
max()

当然,还有一种函数式编程方法:

if A > max(B,C,D):
    print("A wins")
elif B > max(A,C,D):
    print("B wins")

zip
map
var\u names
列表转换为一个元组列表,如
('a',a)
,然后它获得第二项最高的元组。它从该元组中获取变量名。

这里有基本代码。你可以修改它来测试所有的案例,因为它给了我一个错误的答案。当“D”得分最多时,它会返回“B”是赢家?@user3548949:你的分数可能是字符串吗?你能给我们一份你方价值观的样本吗
'100'
作为字符串将小于
'90'
,因为
1
9
之前排序,例如..功能解决方案非常有效,但存在输入错误。第一个
名称
应该是
var\u名称
,因此行应该更改为:
max\u var=max(zip(var\u名称,(map(eval,var\u名称))),key=lambda tuple:tuple[1])[0]
注意:要获取最高var的值,而不是var名称,请将
tuple:tuple[1])[0]更改为
tuple:tuple[1])[1]
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)