我正在创建一个D&D掷骰子供我使用,但我遇到了一个问题。我希望能够掷出荒谬数量的骰子。因此,我需要知道数量部分应该在哪里结束,以及骰子的类型部分应该从哪里开始。[我按以下方式键入卷:2d8(数量 d 类型(]。当我尝试使用 .index(( 函数查找"d"字符时,我无法让它正常运行。感谢您的时间,即使您只是阅读本文。
import random
def rollDice(quant, type):
Troll = 0
for roll in range(quant):
Troll += (random.randrange(type) + 1)
print("You rolled: " + str(Troll))
def check(user):
sep = user.lower().index('d') #I get the problem when I use this
try:
quant = int(user[0:sep])
type = int(user[sep:])
if type in (4, 6, 8, 10, 12, 20, 100):
rollDice(quant, type)
else:
print("Not valid dice type!")
except:
print("Invalid Input!")
while True:
print("To exit type [EXIT]")
user = input("Enter what you want to roll[e.x: 2d8]: ")
if user.upper() == "EXIT":
exit()
else:
check(user)
解决此问题
的简单方法:
def check(user):
try:
quant = int(user.lower().split('d')[0])
type = int(user.lower().split('d')[1])
if type in (4, 6, 8, 10, 12, 20, 100):
rollDice(quant, type)
else:
print("Not valid dice type!")
except:
print("Invalid Input!")