【发布时间】:2018-07-13 18:00:33
【问题描述】:
我正在尝试写一个掷骰子作为练习。我试图研究尝试,除了,虽然,但都没有按我的意愿工作 - 在询问用户是否要继续之前,我想检查用户输入是否有效,如果不是,返回 user_number1 .我是从错误的角度看这个吗?我能用这个做什么? 抱歉这个可能很愚蠢的问题,我对此很陌生。
import random
print("Welcome to the dice roller!")
def roller():
user_number1 = input("Please input the dice you want to use in the following format: XdY > ")
user_number_fin = user_number1.split("d")
num1 = int(user_number_fin[0])
num2 = int(user_number_fin[1])
if num1 == 1:
result1 = random.randint(num1, num1*num2)
print("Your roll is: " + str(result1) + " (" + str(num1) + "d" + str(num2) + ")" )
else:
dice_number = 1
list_of_results = []
while dice_number <= num1:
result2 = random.randint(num1, num2)
list_of_results.append(result2)
dice_number += 1
print("Your roll is: " + str(sum(list_of_results)) + " (" + str(num1) + "d" + str(num2) + ", " + str(list_of_results)+ ")")
def shouldi():
roller()
usercont = input("Do you want to continue? y/n > ")
while usercont in ["Y", "y"]:
roller()
usercont = input("Do you want to continue? y/n > ")
if usercont in ["N", "n"]:
print("Thank you for using the dice roller. Bye!")
quit()
else:
print("That is not a valid input.")
usercont
【问题讨论】:
-
您可能想使用正则表达式来检查输入的有效性,例如。
user_number_fin = re.match("(\\d?)d(\\d?)",user_number1,re.I)然后你可以做一个循环:while not user_number_fin: read again
标签: python-3.x exception-handling dice