新手变量传递

Sam*_*mer 3 python python-2.7

我真的很感激你是否可以快速解决我遇到的这个小问题.到目前为止,在编程中,我已经完成了一些C,但我对如何通过Python中的函数传递变量感到困惑.

我确信这个问题已被多次询问,但我不知道该搜索什么.

我的代码是:

x=0
def getinput(x):
    x = input('Enter x: ')
def addtwo(x):
    x = x + 2
def printans(x):
    print 'x is', + x

getinput(x)
addtwo(x)
printans(x)
Run Code Online (Sandbox Code Playgroud)

printans总是打印出来0.我确定这是因为函数内部的变量是本地的,但我不知道如何在python中修复它.

谢谢您的帮助!

Lev*_*von 6

问题是你没有返回你在函数中获得/计算的值.

我不会给你所有的代码,但如果你理解这个例子,你将能够根据需要对你自己代码的其余部分进行必要的调整,作为学习用Python编程的一部分.

def addtwo(x):
    x = x + 2 # compute your result
    return x  # return the result to caller


result = addtwo(5) # save the returned value
print result       # print it out
Run Code Online (Sandbox Code Playgroud)

产量

7
Run Code Online (Sandbox Code Playgroud)

你想要做类似于getinput()函数的事情,因为它获得了你想在程序中使用的值.与此相反printans(),只需要打印信息,但不会计算需要返回给您的任何信息.

请注意,随着您对此更加熟悉,您可以缩短代码/表达式,因此对于上面的示例,您的整个函数可能包含

 def addtwo(x):
    return x + 2
Run Code Online (Sandbox Code Playgroud)

但在此之前,明确地逐步做事并没有错.