Как определить вывод «события» для печати по результату случайного броска костей? - PullRequest
1 голос
/ 14 июня 2019

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

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

    import random

    def dice_roll():


      d20_roll = random.randint(1,20)
      print("You rolled " +str(d20_roll))

      def dice_choice():
            event = str(d20_roll)

            bad_list = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', 
            '11', '12']

            good_list = ['13', '14', '15', '16', '17', '18']

            gag_list = ['19', '20']

            if event == bad_list:
               print('bad_list stuff')

            elif event == good_list:
                 print('good_list stuff')

            else:
                 if event == print gag_list:
                    print("gag_list stuff")

        dice_choice()
    dice_roll()

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

1 Ответ

1 голос
/ 14 июня 2019

Во-первых, проверьте свой отступ, ваш вызов dice_choice() кажется внутри dice_choice(), во-вторых, в вашем тесте есть синтаксическая ошибка if event == print gag_list:, в-третьих, вы проверяете, равна ли строка списку, вместо этого вы должны проверить, есть ли строка в списке, ваш код должен выглядеть следующим образом:

import random

def dice_roll():
    d20_roll = random.randint(1,20)
    print("You rolled " +str(d20_roll))

    def dice_choice():
        event = str(d20_roll)

        bad_list = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12']
        good_list = ['13', '14', '15', '16', '17', '18']
        gag_list = ['19', '20']

        if event in bad_list:  #  check using `in` not `===`
            print('bad_list stuff')
        elif event in good_list:
            print('good_list stuff')
        elif event == gag_list:
            print("gag_list stuff")

    dice_choice()

dice_roll()

Пример вывода:

You rolled 11
bad_list stuff
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...