【发布时间】:2016-07-28 13:21:54
【问题描述】:
我在下面制作了一个快速脚本来测试在更大的自学计划中遇到问题后的一些行为。我正在使用 python 2.7.x。
#!/usr/bin/python
def test(arg1):
y = arg1 * arg1
print 'Inside the function', y
return y
y = int(raw_input('Enter: '))
test(y)
print 'Outside the function', y
输入:6
函数内部 36
函数外6
但是,当代码如下:
#!/usr/bin/python
def test(arg1):
y = arg1 * arg1
print 'Inside the function', y
return y
y = test(6)
print 'Outside the function', y
函数内部 36
函数外 36
为什么第一个代码 sn-p 提供 36, 6 而 not 36, 36 就像第二种情况一样?您可以为函数返回更改后的值(在本例中为 36)提出什么建议,以便可以将值传递给另一个函数。
对于上下文,我的目标是让用户输入一个值,然后将该值发送给一个函数。我希望该函数对该输入执行一些逻辑,例如测试以确保它满足某个条件:使用字符 [a-zA-z -],然后返回该值,以便可以将其传递给另一个函数。但是,我并不是在寻求支持
非常感谢您的宝贵时间,非常感谢您的帮助。
【问题讨论】:
-
顺便说一句,Python 不使用结束分号
-
我不建议使用全局变量,更不用说使用同名的全局+本地变量。键盘上有足够的字母!
-
在第一个 sn-p 中,您将
y分配给用户输入的任何内容。然后你在 y 上调用test,但你没有将test的输出分配给任何东西。所以在函数之外,y 仍然被定义为用户输入的任何内容。在第二个 sn-p 中,您将 y 分配给 test 的输出,即 y 它打印为 36。 -
@Jean-FrançoisFabre 好吧。我只是想弄清楚如何将值从一个函数传递到另一个函数。
标签: python return return-value