Python для игры в кости и азартные игры

#python

#python

Вопрос:

Здравствуйте, у меня проблема в моем коде. Я хочу проверить значение ran_dice в методе main, но я не знаю, как я могу это сделать. Например, я написал ran_dice(2), он возвращает 2 случайных целых числа, и я хочу проверить, равны эти два целых числа или нет. Могу ли я сделать в основном методе? Как ?

Комментарии:

1. Вы создаете ад для программистов, возвращая такие разные типы из своей функции. В одной ветке вы возвращаете целое число, в другой — кортеж. Вам придется иметь дело с этим несоответствием каждый раз, когда вы используете функцию. Использование number1, number2 = ran_dice(parameter) будет работать только в том случае, если параметр равен 2.

2. Не могли бы вы проверить свой вопрос? Мне не ясно, с какой проблемой вы столкнулись. Вы можете print(ran_dice(2)) или даже сохранить его в переменной для работы с ним.

3. Я отредактировал, теперь это понятно?

Ответ №1:

Печать ran_dice(2) должна сделать свое дело.

Редактировать в соответствии с комментарием:

 a,b=ran_dice(2)
if a==b:
    # code to stop
 

Однако, как упоминалось в другом комментарии ran_dice(s) , функция немного опасна, поскольку количество возвращаемых ею данных варьируется. Хорошей практикой является то, чтобы программа возвращала постоянное количество вещей. Вы можете возвращать значения в списке, и размер списка может меняться, но, по крайней мере, вы всегда возвращаете один список.

Комментарии:

1. Тем не менее, я хочу сравнить их, например, a и b равны, я хочу остановиться

Ответ №2:

Вот пример, вы могли бы вернуть значения кости в списке. Таким образом, вы можете настроить возвращаемое количество кубиков по своему усмотрению и сравнить результат.

 import random

def ran_dice(s):
    if s==1:
        a=random.randint(1,6)
        return [a]
    elif s==2:
        a=random.randint(1,6) 
        b=random.randint(1,6) 
        return [a,b]
   

def main():
    credit=100
    print('Welcome user, you have ', credit,'credits.')
    number=int(input('How much do you want to gamble?: '))
    while number <0 or number>100:
        print('You need to give a positive integer no more than your credit.')
        number=int(input('How much do you want to gamble?: '))
    result = ran_dice(2)
    print ("dice=", result)
    firstdice = 0
    for dice in result:
        if firstdice == 0:
            firstdice = dice
        elif dice == firstdice:
            print("equal")
        else:
            print("different")

    if result[0] == result[1]:
        print("equal")

main()
 

Комментарии:

1. Почему голосование против? Я отвечал на оригинальную версию вопроса, которая была отредактирована : (