【发布时间】:2017-06-22 16:39:24
【问题描述】:
首先,我必须告诉你,我对编码完全陌生,所以我遇到的问题可能是由有史以来最愚蠢的错误引起的,如果是这样,我很抱歉!
我正在尝试制作一个能够计算 +、-、*、/ 的计算器。 如果收到的操作符号无效,它也应该给出错误消息并要求新的操作符号。为了让计算机知道函数“main”是否正在运行,因为它收到了一个无效的函数,或者如果它是第一次运行,我正在尝试使用一个名为“check”的全局变量。开始时,检查设置为 1,因此计算机在请求操作时将使用第一个短语。如果输入了一个无效的操作,变量“check”就会加一,当它要求一个新的操作时,这将导致第二个短语(错误信息)。
问题是当我尝试运行脚本时,第一行出现语法错误,其中“global check = 1”。我做错了什么?
下面是我的代码:
global check = 1
#returns num1 + num2
def add(num1,num2):
return num1 + num2
#returns num1 - num2
def sub(num1,num2):
return num1 - num2
#returns num1 * num2
def mul (num1,num2):
return num1 * num2
#returns num1 / num2
def div (num1,num2):
return num1 / num2
#Main Function
def main():
if(global check == 1): #checks if "main" has been read before, if it has, then it is read agian because of invalid operation, and the global "check" should be higher than 1.
operation = input("Choose an operation! (+,-,*,/")
else:
operation = input("You must choose a valid operation! (+,-,*,/")
if(operation != "+" and operation != "-" and operation != "*" and operation != "/"):
global check = global check + 1
main()
else:
var1 = int(input("Enter number 1 :"))
var2 = int(input("Enter number 2 :"))
if(operation == "+"):
print(add(var1,var2))
elif(operation == "-"):
print(sub(var1,var2))
elif(operation == "*"):
print(mul(var1,var2))
else:
print(div(var1,var2))
main()
【问题讨论】:
-
我不明白为什么代码以这种方式显示,我没有那样输入它但它仍然是那样放置......
-
这是因为SO使用了markdown。现在修好了。在我看来没有理由使用
global:这里check已经是全球性的...... -
当你修复了这个问题后,还有其他几个地方你错误地放置了
global。是关键字,不能在表达式中使用。 -
感谢您的回复,它修复了该错误,但现在我在 if 语句的第 21 行得到它。您能否解释一下我应该在哪里使用 global 以及我不应该在哪里使用,以及为什么?
标签: python python-3.x syntax-error global-variables