Python编码(调用函数/返回值)
我在为这个问题编写代码时遇到了麻烦。我在几个地方看到了这个问题,但我仍然无法从他们提供的技巧中找出答案。Python编码(调用函数/返回值)
问题是:编写一个程序,它有两个函数:first()和second()。函数first()应该打印字符串“In function first()”,然后调用函数second()。第二个功能()应打印字符串“在功能上第二(),在全球scopre,应首先调用函数()。
这是我的代码..
def first():
first = "In function first"
def second():
second = "In function second"
print first(), second()
戴上这个更近一步?它仍然没有工作,但我把打印功能回到..
first = "In function first"
不作函数的返回"In function first"
。
我能理解你为什么会认为并非如此。在某些语言中,返回av的方式alue是将其分配给该功能。在其他语言中,赋值是一个表达式,并且在函数内部评估的最后一个表达式是返回值。所以,有很多语言你在做什么都行。
但是Python不是其中之一。在Python中,返回值的唯一方法是使用return
声明。如果您不使用return
声明,则呼叫者只需获得None
。
所以,你的代码只是创建一个局部变量(容易混淆)与函数相同的名字,赋值给它,然后忽略该变量,所以它最终没有任何效果。
你想要的是:
def first():
return "In function first"
def second():
return "In function section"
print first(), second()
然而,尽管这会给你所需的输出,它实际上没有做你说你想要的东西:
功能第一()应打印字符串“In function first()”
在这种情况下,应该其中有print
,而不是return
其他人必须打印的值。
...然后调用函数second()。
然后你需要拨打电话second()
在first
的定义之内,而不是在它之外。
功能第二()应打印字符串“在功能上第二()。
再次,它应该print
,不return
。
所以,这是一个更好的比赛你试图做:
def first():
print "In function first"
second()
def second():
print "In function second"
first()
话虽这么说,你写的代码(此修复程序)实际上好像不是代码更好代码你想写。从内部函数返回值并处理最高级别的输出通常比全部都更灵活。
您错过了“然后调用函数second()'”的部分。你有没有想过如何以及在哪里做?另外,你不能在函数外使用'return'。 – BrenBarn 2014-09-28 22:06:04
你也错过了'打印'字符串的部分... – jonrsharpe 2014-09-28 22:11:41
我改变了一点点,以便让打印功能回到那里。我早先把它们拿出来,忘了把它们放回去。 – Kayla 2014-09-28 22:17:41