#python
#python
Вопрос:
У меня есть список die_count = [0,0,0,0,0,0,0]
; элемент 0 не используется, поэтому игнорируйте это, элементы 1-6 важны. Таким образом, в основном элементы подключены к random.randint, которые генерируют случайное число, и в моей программе эти числа генерируются несколько раз при использовании пользователем.
Итак, в конце моей программы мне нужно показать эту статистику как таковую:
Dice Roll Stats:
Face Frequency
1 *
2 ***
3 *
4 *
5 **
6 **
Итак, как вы можете видеть, список в основном представляет собой стороны игральных костей, а звездочки показывают, сколько раз эта грань была сгенерирована в ходе программы
Я пытался сделать это следующим образом, но иногда код не выполняется, иногда он выполняется и просто показывает целые числа.
index = 1
while index < die_count[2] :
for num in die_count :
print(num)
index = 1
Комментарии:
1. Пожалуйста, не порти свои собственные сообщения. Публикуя здесь, вы предоставляете SO право распространять контент в соответствии с CC-by SA 4.0. Любой вандализм будет отменен.
Ответ №1:
Вы могли бы сделать что-то вроде следующего:
die_count = [0,4,5,3,2,1,7]
for i in range(1, len(die_count)):
print(i, die_count[i] * "*")
Он выведет:
1 ****
2 *****
3 ***
4 **
5 *
6 *******
В каких случаях ваш код не работает? Из вопроса не ясно.
Также, почему вы инициируете die_count
с 7 элементами, если вы не используете первый элемент. Это не имеет никакого смысла.
Комментарии:
1. Зачем использовать два оператора print? почему бы просто не
print(i, die_count[i] * "*")
?2. @7koFnMiP Причины нет, я изменил ее. Спасибо.
3. Также, возможно, он использует первый элемент, просто не для целей этого кода. Вопросы StackOverflow должны быть воспроизводимыми только
4. возможно, @7koFnMiP, но он заявляет, что «элемент 0 не используется, поэтому игнорируйте это», вот почему.
5. @DanyalKhan Я тоже не уверен. не стесняйтесь спрашивать здесь.
Ответ №2:
вы также можете стать немного более продвинутым и использовать это, позволяя пользователю определять количество выпадений кости, а не отображать его
side = 0
diceList = [0]
while side !=6:
side =1
diceCount = int(input(f'How many times did the dice roll on side {side}: '))
diceList.append(diceCount)
for i in range(1, len(diceList)):
print(i, diceList[i] * "*")
Комментарии:
1. сделал это, и это сработало как ожидалось, даже если вы его не используете, это может предложить некоторые новые приемы или показать вам то, о чем вы не думали, надеюсь, это поможет