为变量赋值时的语法错误

时间:2013-10-03 23:14:44

标签: python variables

我正在使用python创建一个程序,该程序涉及定义一个看起来有点像这样的函数:

def GetNumbers(): 

print('What is the coefficient of x^2?')
global xsqurd = int(input)

但是当我调用这个函数时,它会返回一个语法错误,并说'='是无效的语法。我做错了什么?

5 个答案:

答案 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)

这说明了从函数传递和返回变量,并且是执行此操作的首选方法。请注意,我已更正了一些语法错误并误解了输入键的工作原理。