我想检查用户输入是否是一个数字,如果它继续代码,如果它没有重新询问,直到他们输入一个数字
# This progam will simulate a dice with 4, 6 or 12 sides.
import random
def RollTheDice():
print("Roll The Dice")
print()
ValidNumbers = [4,6,12]
Repeat = True
while Repeat == True:
Counter = 0
NumberOfSides = input("Please select a dice with 4, 6 or 12 sides")
if not type(NumberOfSides) == int or not int(NumberOfSides) == ValidNumbers:
print("You have entered an incorrect value")
NumberOfSides = int(input("Please select a dice with 4, 6 or 12 sides"))
else:
print()
UserScore = random.randint(1,NumberOfSides)
print("{0} sided dice thrown, score {1}".format (NumberOfSides,UserScore))
RollAgain = input("Do you want to roll the dice again? ")
if RollAgain == "No" or RollAgain == "no":
print("Have a nice day")
Repeat = False
else:
NumberOfSides = int(input("Please select a dice with 4, 6 or 12 sides: "))
答案 0 :(得分:0)
首先,一般编程实践:使用camelCase或under_scores作为变量名。
这是(我认为)你想要的东西:
validNumbers = [4, 6, 12]
repeat = True
while repeat:
userNum = input("Enter a number ") # input returns a string
try: # try to convert it to an integer
userNum = int(userNum)
except ValueError:
pass
if userNum in validNumbers:
repeat = False
# do everything else