#python-3.x #if-statement
#python-3.x #if-оператор
Вопрос:
Я новичок в python и возился со списками и циклами. Я хочу создать игру в кости и бросить кости 5 раз, сохранить ее в списке, а затем найти числа, которые совпадают в указанном списке. но вывод заканчивается тем, что я просто даю мне значение длины списка.
import random
#I start with an empty list
dice = []
#Roll 5 random numbers
for x in range(0, 5):
x = random.randint(1,6)
dice.append(x)
#find how many time a number in the list was rolled
count = 0
for x in range(6):
count = dice.count(x)
print(“Player rolled:”, dice)
print(count)
#The output ends up this:
#Player rolled: [3, 3, 3, 1, 3]
#[5]
```
#output value I'm looking for is 4
#output next run
#Player rolled: [2, 6, 5, 6, 6]
#[5]
# output value should be 3
#How do I find and store the matches in the list and store them in count? Sorry #I’m really trying to understand lists and loops but I just can’t figure this out
Комментарии:
1. Зик, ваш код все еще не выровнен должным образом. Не могли бы вы это исправить. Что вы ожидаете
count
напечатать? Последний экземплярfor
цикла или каждый экземплярfor
цикла?2. Я просто пытаюсь найти количество совпадающих чисел в списке и сохранить его в count. Игрок откатился: [3, 3, 3, 1, 3] должно быть count = 4, потому что 4 числа одинаковы. количество совпадений игроков или должно быть.
3. Что, если бы выпавшие числа были
[3,1,2,2,3]
? Должно ли оно указывать 2?4. вы должны проверить
if count > max_count
, если да, тоmax_count = count
. Затем распечатайтеmax_count
. Смотрите мой код ниже5. Я бы сказал, да, я просто пытался сделать игру типа покерной руки, так что в этом случае это будет 2, как в паре 2. Я видел, как вы кодировали, это должно мне очень помочь. большое вам спасибо.
Ответ №1:
Выведите максимальное количество раз, когда кости выпадали на число
Кроме того, выведите числа на кубиках
Вот обновленный код, который также печатает числа, которые были перенесены максимальное количество раз. Я сохраняю числа, которые были перенесены в список максимальное количество раз. Если есть новое значение max_value, я сбрасываю список для сохранения нового номера. Если значение max_value (counts) совпадает с предыдущим значением max count, то я добавляю его в список (поскольку их два).
import random
#I start with an empty list
dice = []
#Roll 5 random numbers
for x in range(5):
x = random.randint(1,6)
dice.append(x)
#find how many time a number in the list was rolled
count = 0
max_count = 0
max_value = []
print('Player rolled :', dice)
for x in range(1,7):
count = dice.count(x)
if max_count < count:
max_count = count
max_value = [x]
elif max_count == count:
max_value.append(x)
print(x, 'was rolled :', count , 'times')
print ('max times a number was rolled is :', max_count)
print ('following numbers were rolled max times :', max_value)
Результат нескольких запусков:
Player rolled : [3, 1, 5, 2, 3]
1 was rolled : 1 times
2 was rolled : 1 times
3 was rolled : 2 times
4 was rolled : 0 times
5 was rolled : 1 times
6 was rolled : 0 times
max times a number was rolled is : 2
following numbers were rolled max times : [3]
Player rolled : [3, 3, 5, 5, 6]
1 was rolled : 0 times
2 was rolled : 0 times
3 was rolled : 2 times
4 was rolled : 0 times
5 was rolled : 2 times
6 was rolled : 1 times
max times a number was rolled is : 2
following numbers were rolled max times : [3, 5]
Выведите максимальное количество раз, когда кости выпадали на число
Я думаю, вы хотите узнать, сколько раз было перевернуто каждое число. Если это так, вам нужно вывести подсчет каждого экземпляра цикла for.
Вот код, который это сделает.
import random
#I start with an empty list
dice = []
#Roll 5 random numbers
for x in range(5):
x = random.randint(1,6)
dice.append(x)
#find how many time a number in the list was rolled
count = 0
max_count = 0
print('Player rolled :', dice)
for x in range(1,7):
count = dice.count(x)
if max_count < count:
max_count = count
print(x, 'was rolled :', count , 'times')
print ('max times a number was rolled is :', max_count)
Результатом этого будет:
Player rolled : [6, 5, 5, 1, 5]
1 was rolled : 1 times
2 was rolled : 0 times
3 was rolled : 0 times
4 was rolled : 0 times
5 was rolled : 3 times
6 was rolled : 1 times
max times a number was rolled is : 3
Player rolled : [2, 2, 3, 6, 5]
1 was rolled : 0 times
2 was rolled : 2 times
3 was rolled : 1 times
4 was rolled : 0 times
5 was rolled : 1 times
6 was rolled : 1 times
max times a number was rolled is : 2
Комментарии:
1. «максимальное количество раз, когда число было перевернуто, равно: 2» Это то, что я пытаюсь сделать, спасибо. так много
2. отлично. Я думаю, вы просто пропустили ту часть, где вы проверяете значение count . Если это решило вопрос, пожалуйста, не стесняйтесь отметить как отвеченный и проголосовать за ответ.
3. Да, я занимаюсь этим python всего неделю, и я все еще выясняю, как все работает, это может быть немного больше, чем я должен был попробовать на данный момент..
4. Вы отлично справляетесь. Продолжайте. Python прост в освоении и увлекателен.
5. Вы спросили меня: «Что, если выпавшие числа были [3,1,2,2,3] ? Должен ли он сказать 2?» как бы я заставил это работать?