2014-09-28 46 views
-1

我在为这个问题编写代码时遇到了麻烦。我在几个地方看到了这个问题,但我仍然无法从他们提供的技巧中找出答案。Python编码(调用函数/返回值)

问题是:编写一个程序,它有两个函数:first()和second()。函数first()应该打印字符串“In function first()”,然后调用函数second()。第二个功能()应打印字符串“在功能上第二(),在全球scopre,应首先调用函数()。

这是我的代码..

def first(): 
    first = "In function first" 


def second(): 
    second = "In function second" 

print first(), second() 

戴上这个更近一步?它仍然没有工作,但我把打印功能回到..

+3

您错过了“然后调用函数second()'”的部分。你有没有想过如何以及在哪里做?另外,你不能在函数外使用'return'。 – BrenBarn 2014-09-28 22:06:04

+0

你也错过了'打印'字符串的部分... – jonrsharpe 2014-09-28 22:11:41

+0

我改变了一点点,以便让打印功能回到那里。我早先把它们拿出来,忘了把它们放回去。 – Kayla 2014-09-28 22:17:41

回答

0

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() 

话虽这么说,你写的代码(此修复程序)实际上好像不是代码更好代码你想写。从内部函数返回值并处理最高级别的输出通常比全部都更灵活。

+0

所以我只是需要摆脱=并将它改回来。谢谢! – Kayla 2014-09-28 22:24:39

+0

@Kayla,我不会说那只是你需要做的。你需要了解正在发生的事情,然后你(仍然)需要遵循作业中的指示。 – alexis 2014-09-28 22:51:14

+0

@alexis,我明白,我只是不知道我到底做错了什么。 – Kayla 2014-09-28 23:03:10