如何打印并继续程序,而不是在用户输入 0 时崩溃?



我让我的用户输入骰子应该有的边数。 如果有人键入 0,程序将崩溃。如果他们输入字母或浮点数,则打印请输入整数。如何打印程序,当用户输入 0 时请输入整数?索引错误: 无法从空序列中进行选择。

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

检查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")

最新更新