Как узнать, какая переменная имеет наибольшее значение

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} 

Теперь гораздо легче узнать, кто победит:

 winner = max(players, key=players.get) print(winner, 'wins') 

Это возвращает ключ от players для которых значение является максимальным. Вы можете использовать players во всем коде, а не везде.

Чтобы сделать это явным: A > B and C and 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") 

Конечно, есть также функциональный способ программирования:

 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) , затем он получает кортеж с наивысшим вторым элементом. Из этого кортежа он захватывает имя переменной.