【问题标题】:Python Coding (call function / return values)Python 编码(调用函数/返回值)
【发布时间】:2014-11-23 06:27:56
【问题描述】:

我无法为这个问题编写代码。我在几个地方看到过这个问题,但我仍然无法从他们提供的提示中找出答案。

问题是:编写一个具有两个函数的程序:first() 和 second()。函数 first() 应该打印字符串“In function first()”,然后调用函数 second()。函数 second() 应该打印字符串“In function second()。在全局范围内,您应该调用函数 first()。

这是我的代码..

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


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

print first(), second()

这看起来更近了吗?它仍然不起作用,但我把打印功能放回去了..

【问题讨论】:

  • 您缺少“然后调用函数second()”的部分。你有没有想过如何以及在哪里做到这一点?另外,你不能在函数之外使用return
  • 你也错过了print字符串的两个部分......
  • 我稍微更改了 cote,以便将打印功能放回原处。我之前把它们拿出来忘记放回去了。

标签: python function return call


【解决方案1】:

first = "In function first" 不会使函数返回 "In function first"

我能理解你为什么会这么想。在某些语言中,返回值的方法是将其分配给函数。在其他语言中,赋值是一个表达式,函数内部计算的最后一个表达式是返回值。所以,有很多语言可以让你做的事情。

但 Python 不是其中之一。在 Python 中,返回值的唯一方法是使用 return 语句。如果你不使用return 语句,调用者只会得到None

因此,您的代码只是创建了一个与函数同名(令人困惑地)的局部变量,为其赋值,然后忽略该变量,因此它最终没有任何效果。

你想要的是:

def first():
    return "In function first"

def second():
    return "In function section"

print first(), second()

然而,虽然这会给你想要的输出,但它实际上并没有按照你所说的去做:

Function first() 应该打印字符串“In function first()”

在这种情况下,它应该有一个 print,而不是 return 一个其他人必须打印的值。

… 然后调用函数 second()。

那么你需要把对second()的调用放在first的定义里面,而不是外面。

函数 second() 应该打印字符串“In function second()。

同样,它应该是print,而不是return

因此,这与您尝试做的事情更匹配:

def first():
    print "In function first"
    second()

def second():
    print "In function second"

first()

话虽如此,您编写的代码(通过此修复)实际上看起来比您想要编写的代码更好。从内部函数返回值并在最高级别处理输出通常比到处使用prints 更灵活。

【讨论】:

  • 所以我只需要摆脱 = 并将其更改为返回。谢谢!
  • @Kayla,我不会说这“只是”你需要做的。您需要了解发生了什么,然后您(仍然)需要按照作业中的指示进行操作。
  • @alexis,我明白,我只是不知道我到底做错了什么。
猜你喜欢
  • 2022-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-24
  • 1970-01-01
  • 2019-02-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多