Python - создать 2 кубика, чтобы бросить честно и сложить их вместе?

Поэтому я должен был сделать код, который честно бросит кубик и посчитал, сколько я получил 4. С помощью людей здесь я получил это на работу. Что ж, теперь я должен создать еще один кубик и бросить их, а затем добавить продукты вместе. Это инструкции, которые мне дали.

"Затем напишите другую функцию, которая имитирует бросание двух честных кубиков. Самый простой способ - дважды вызвать функцию, которую вы только что написали, и добавить полученные числа. Это должно вернуть число от 2 до 12".

Я добавил бросок костей во второй раз, но как мне сложить суммы двух бросков вместе - мой вопрос? И это мой код.

from random import randrange
def roll():
    rolled = randrange(1,7)
    if rolled == 1:
        return "1"
    if rolled == 2:
        return "2"
    if rolled == 3:
        return "3"
    if rolled == 4:
        return "4"
    if rolled == 5:
        return "5"
    if rolled == 6:
        return "6"

def rollManyCountTwo(n):
    twoCount = 0
    for i in range (n):
        if roll() == "2":
            twoCount += 1
        if roll() == "2":
            twoCount +=1
    print ("In", n,"rolls of a pair of dice, there were",twoCount,"twos.")

rollManyCountTwo(6000)

2 ответа

Вам вообще не нужно иметь дело со строками, это можно сделать полностью, используя int ценности

from random import randint

def roll():
    return randint(1,6)

def roll_twice():
    total = 0
    for turn in range(2):
        total += roll()
    return total

Например

>>> roll_twice()
10
>>> roll_twice()
7
>>> roll_twice()
8

И для вашей функции, которая должна рассчитывать количество 2с, которые были свернуты, снова вы можете сделать целочисленное сравнение

def rollManyCountTwo(n):
    twos = 0
    for turn in range(n):
        if roll() == 2:
            twos += 1
    print('In {} rolls of a pair of dice there were {} twos'.format(n, twos))
    return twos

>>> rollManyCountTwo(600)
In 600 rolls of a pair of dice there were 85 twos
85
from random import randint

def roll():
    return randint(1,6)

def rollManyCountTwo(n):
    twoCount = 0
    for _n in xrange(n*2):
        if roll() == 2:
            twoCount += 1
    print "In {n} rolls of a pair of dice, there were {cnt} twos.".format(n=n, cnt=twoCount)

Так как вы бросаете две кубики для n раз и считать каждые два проката, просто цикл для n*2 и проверьте, если результат игры в кости равен двум.

Другие вопросы по тегам