【发布时间】:2015-06-23 19:13:09
【问题描述】:
我正在自学编码,目前正在研究掷骰子作为一个学习项目。我现在遇到了一个奇怪的障碍。我的代码中的第四个“def”,无论它实际上是什么(我已经尝试了几个都单独工作),它一直被标记为语法错误。这是我所拥有的:
import random
def mult():
print('How many dice would you like to roll?')
multiplier = input()
mod()
def mod():
print('What modifier, if any, would you like to assign?')
modifier = input()
result()
def result():
total = (roll * multiplier) + modifier
print('Your result is'
(str(total)
def menuscreen():
print("Welcome to Jack's dice roller. What kind of die would you like to roll?")
print("")
print("A. d2")
print("B. d4")
print("C. d6")
print("D. d8")
print("E. d10")
print("F. d12")
print("G. d20")
print("H. d100")
def gen():
menuscreen()
if input() == 'a' or 'A':
roll = random.randint(1,2)
mult()
if input() == 'b' or 'B':
roll = random.randint(1,4)
mult()
if input() == 'c' or 'C':
roll = random.randint(1,6)
mult()
if input() == 'd' or 'D':
roll = random.randint(1,8)
mult()
if input() == 'e' or 'E':
roll = random.randint(1,10)
mult()
if input() == 'f' or 'F':
roll = random.randint(1,12)
mult()
if input() == 'g' or 'G':
roll = random.randint(1,20)
mult()
if input() == 'h' or 'H':
roll = random.randint(1,100)
mult()
def queryque():
print('Would you care to roll again?')
if input == 'yes':
gen()
if input == 'no':
end
gen()
【问题讨论】:
-
首先,不要尝试将 Python 发布为代码 sn-ps;仅适用于 JavaScript。我会编辑它。
-
为了将来参考,当您遇到错误时,您可以通过包含堆栈跟踪来使潜在响应者的生活更加轻松,因为它会准确显示错误的位置。
-
作为一般规则,在 Python 中,当您在看起来完全有效的行上获得
SyntaxError时,请向上查看是否缺少)(或偶尔会出现 @987654324 @ 或})。这是一个非常常见的错误——缺少)意味着它试图将下一行解释为上一行中表达式的一部分,并且您不能在表达式中间抛出def。您可能还想考虑获得一个更好的编辑器来帮助您平衡括号;它们对几乎所有编程语言都很有用。 -
对不起,你知道我以前没有做过很多编码,请原谅我的无知。
-
我试图找到一个好的 dup 将其链接到,但看起来我们现在正在将它们作为拼写错误关闭。真可惜,因为在某个地方有一个解释会很好……但我想我会同意的。
标签: python function python-3.x syntax-error