Существует ли более эффективный способ организовать случайные результаты размером в Python?

Я делаю программу, которая, частично, прокручивает четыре игры в кости и вычитает самую низкую игру в кости из результата. Код, который я использую,

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

Это является лучшим, я мог придумать от своей до сих пор ограниченной способности к кодированию. Существует ли лучший способ заставить его организовать эти четыре игры в кости в порядке размера, затем добавить вместе три, самые высокие при игнорировании остатка? Или код, я использую лучший способ сделать это?

5
задан Peter O. 4 August 2017 в 18:56
поделиться

1 ответ

Поместите кости в список, отсортируйте список с помощью sorted и удалите наименьший элемент с помощью фрагмента:

>>> import random
>>> dice = [random.randint(1, 6) for x in range(4)]
>>> sum(sorted(dice)[1:])
13

Или другой вариант, который проще и будет быстрее, если у вас много кубиков : используйте min , чтобы найти минимальный кубик и вычтите его из суммы всех:

>>> sum(dice) - min(dice)
13
8
ответ дан 14 December 2019 в 04:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: