我正在使用python创建一个程序,该程序涉及定义一个看起来有点像这样的函数:
def GetNumbers():
print('What is the coefficient of x^2?')
global xsqurd = int(input)
但是当我调用这个函数时,它会返回一个语法错误,并说'='是无效的语法。我做错了什么?
答案 0 :(得分:1)
你必须这样做:
def GetNumbers():
global xsqurd
xsqurd = int(input('What is the coefficient of x^2? '))
请注意,对于Python 2.x,您必须使用raw_input
而不是input
。
答案 1 :(得分:0)
不要使用全球。这几乎总是一个糟糕的解决方案。请考虑返回一个值。也就是说,这就是你看到错误的原因。
global
是仅接受该关键字和名称的语句的一部分。要使用global
,您需要将其拆分。
global xsqurd
xsqurd = int(input)
当然,这假定输入是一些其他全局变量。正如Claudiu在下面指出的那样,你很可能打电话给input()
。
答案 2 :(得分:0)
你做错了是写了一些无效的语法。
global
语句只接受一系列变量名称并声明它们是全局的。你不能随意抛出其他语法。
如果您尝试将xsqurd
声明为全局,并在同一语句中更新它,则无法执行此操作。只写两个陈述:
global xsqurd
xsqurd = int(input)
答案 3 :(得分:0)
试试这个:
xsqurd = None
def GetNumbers():
print('What is the coefficient of x^2?')
global xsqurd
xsqurd = int(22)
GetNumbers()
print xsqurd
注意global xsqurd
语句出现在作业之前。
答案 4 :(得分:0)
其他答案很好地展示了如何在您想要的上下文中正确使用global
。如果你真的想使用全局变量,请查看这些答案。
def GetNumbers():
val = input('What is the coefficient of x^2?')
return int(val)
def myOtherFunction(x):
return x**2 # Or whatever would be in this function
xsqurd = GetNumbers()
print xsqurd
# Using arguments to pass this to other functions
val = myOtherFunction(xsqurd)
这说明了从函数传递和返回变量,并且是执行此操作的首选方法。请注意,我已更正了一些语法错误并误解了输入键的工作原理。