Я делаю программу, которая, частично, прокручивает четыре игры в кости и вычитает самую низкую игру в кости из результата. Код, который я использую,
die1 = random.randrange(6) + 1
die2 = random.randrange(6) + 1
die3 = random.randrange(6) + 1
die4 = random.randrange(6) + 1
if die1 <= die2 and die1 <= die3 and die1 <= die4:
drop = die1
elif die2 <= die1 and die2 <= die3 and die2 <= die4:
drop = die2
elif die3 <= die1 and die3 <= die2 and die3 <= die4:
drop = die3
else:
drop = die4
cha = die1 + die2 + die3 + die4 - drop
Это является лучшим, я мог придумать от своей до сих пор ограниченной способности к кодированию. Существует ли лучший способ заставить его организовать эти четыре игры в кости в порядке размера, затем добавить вместе три, самые высокие при игнорировании остатка? Или код, я использую лучший способ сделать это?
Поместите кости в список, отсортируйте список с помощью sorted
и удалите наименьший элемент с помощью фрагмента:
>>> import random
>>> dice = [random.randint(1, 6) for x in range(4)]
>>> sum(sorted(dice)[1:])
13
Или другой вариант, который проще и будет быстрее, если у вас много кубиков : используйте min , чтобы найти минимальный кубик и вычтите его из суммы всех:
>>> sum(dice) - min(dice)
13