【发布时间】:2022-01-21 18:29:11
【问题描述】:
感谢您阅读本文。
我试图“重置”下面的脚本,每次用户在掷骰子句子上回答“否”时,脚本都会回到开头。但是,我不知道出了什么问题。该脚本包括选择您要滚动的骰子并获得一个随机数。现在,我无法运行脚本,不再工作了。
import random
def d4():
rolagemD4 = str(random.randint(1, 4))
retorno = input("resultado do d4: " + rolagemD4 + "\n Gostaria de rolar outro D4, Sim(S) ou Não(N)?")
if (retorno == "S") or (retorno == "Sim") or (retorno == "sim"):
rolagemD4 = 0
d4()
if (retorno == "N") or (retorno == "Não") or (retorno == "Nao") or (retorno == "nao"):
principal()
def d6():
rolagemD6 = str(random.randint(1, 6))
retorno = input("resultado do d6: " + rolagemD6 + "\n Gostaria de rolar outro D6, Sim(S) ou Não(N)?")
if (retorno == "S") or (retorno == "Sim") or (retorno == "sim"):
rolagemD6 = 0
d6()
if (retorno == "N") or (retorno == "Não") or (retorno == "Nao") or (retorno == "nao"):
principal()
def d8():
rolagemD8 = str(random.randint(1, 8))
retorno = input("resultado do d8: " + rolagemD8 + "\n Gostaria de rolar outro D8, Sim(S) ou Não(N)?")
if (retorno == "S") or (retorno == "Sim") or (retorno == "sim"):
rolagemD8 = 0
d8()
if (retorno == "N") or (retorno == "Não") or (retorno == "Nao") or (retorno == "nao"):
principal()
def d10():
rolagemD10 = str(random.randint(1, 10))
retorno = input("resultado do d10: " + rolagemD10 + "\n Gostaria de rolar outro D10, Sim(S) ou Não(N)?")
if (retorno == "S") or (retorno == "Sim") or (retorno == "sim"):
rolagemD10 = 0
d10()
if (retorno == "N") or (retorno == "Não") or (retorno == "Nao") or (retorno == "nao"):
principal()
def d12():
rolagemD12 = str(random.randint(1, 12))
retorno = input("resultado do d12: " + rolagemD12 + "\n Gostaria de rolar outro D12, Sim(S) ou Não(N)?")
if (retorno == "S") or (retorno == "Sim") or (retorno == "sim"):
rolagemD12 = 0
d12()
if (retorno == "N") or (retorno == "Não") or (retorno == "Nao") or (retorno == "nao"):
principal()
def d20():
rolagemD20 = str(random.randint(1, 20))
retorno = input("resultado do d20: " + rolagemD20 + "\n Gostaria de rolar outro D20, Sim(S) ou Não(N)?")
if (retorno == "S") or (retorno == "Sim") or (retorno == "sim"):
rolagemD20 = 0
d20()
if (retorno == "N") or (retorno == "Não") or (retorno == "Nao") or (retorno == "nao"):
principal()
def d100():
rolagemD100 = str(random.randint(1, 100))
retorno = input("resultado do d100: " + rolagemD100 + "\n Gostaria de rolar outro D100, Sim(S) ou Não(N)?")
if (retorno == "S") or (retorno == "Sim") or (retorno == "sim"):
rolagemD100 = 0
d100()
if (retorno == "N") or (retorno == "Não") or (retorno == "Nao") or (retorno == "nao"):
principal()
def principal():
print("Gostaria de jogar dados? : ")
print("1: dado de 4 faces")
print("2: dado de 6 faces")
print("3: dado de 8 faces")
print("4: dado de 10 faces")
print("5: dado de 12 faces")
print("6: dado de 20 faces")
print("7: dado de 100 faces \n")
print("8: Não quero jogar dados")
choice = input()
principal()
if choice == "1": d4()
if choice == "2": d6()
if choice == "3": d8()
if choice == "4": d10()
if choice == "5": d12()
if choice == "6": d20()
if choice == "7": d100()
if choice == "8": exit()
else :
print ("Opção Não cadastrada, selecione uma válida \n")
principal()
【问题讨论】:
-
你的函数看起来都差不多,除了 randint 为什么不把那个值传递给 1 个函数,然后把它改成一个字符串并插入到 retorno 中
-
现在,我无法运行脚本,不再工作了 说“它不起作用”并没有多大帮助。相反,请告诉我们程序实际上做了什么。你有错误吗?程序是否运行,但您得到意想不到的结果?你没有得到任何结果吗?
-
在你选择一个选项后,你有一个 principal() 所以无限循环。