Как я могу напечатать и продолжить свою программу вместо cra sh, когда пользователь вводит 0? - PullRequest
0 голосов
/ 10 января 2020

Мой пользователь вводит количество сторон, которое должно быть в кости. Если кто-то вводит 0, программа вылетает. Если они набирают букву или число с плавающей точкой, он печатает, пожалуйста, введите целое число. Как мне распечатать мою программу? Пожалуйста, введите целое число, когда пользователь вводит 0? IndexError: Невозможно выбрать из пустой последовательности.

class Dice():

    def __init__(self, numberOfSides):
        self.numberOfSides = numberOfSides


    def rollDice(self):

        Dice.diceSides = list(range(1, self.numberOfSides + 1))
        return random.choice(Dice.diceSides)

def startRolling():

    while True:

        try:
            userInput = int(input("Enter the number of sides your dice has: "))
        except (ValueError, IndexError):
            print("Please enter a whole number.")
            continue
        else:
            break

    diceRolled = Dice(numberOfSides=userInput).rollDice()
    print("You rolled a {}.".format(diceRolled))

До сих пор я пробовал это, и это не сработало:

try:
except (ValueError, IndexError):
    print("Please enter a number.")
    continue

1 Ответ

1 голос
/ 10 января 2020

Проверьте число после try/except.

def startRolling():

    while True:

        try:
            userInput = int(input("Enter the number of sides your dice has: "))

        except ValueError:
            print("Please enter a whole number: ")
            continue

        if userInput != 0:
            break
        else:
            print("Please enter a non-zero number")
...