【问题标题】:Call a function in a function without returning any values在函数中调用函数而不返回任何值
【发布时间】:2017-11-08 22:37:51
【问题描述】:

我是编程新手,希望能得到您的帮助。 我需要编写一个脚本,其中一个函数将在另一个函数中调用。同时,任何函数都不应该返回任何东西,应该使用 print() 来呈现结果。 我想出了两个简单的功能:

def sum1(a,b,c):
    print (a+b+c)

另一个应该计算来自第一个函数的 a、b 和 с 的算术平均值。我一直在尝试让第二个函数调用第一个函数并使用结果来计算算术平均值。我想出了这样的东西,但它不起作用:

def ar():
    sum1()
    print (sum1/3)

非常感谢任何关于如何使整个事情发挥作用的想法!

【问题讨论】:

  • “同时,任何函数都不应该返回任何东西”似乎是一个完全可笑的要求。只是确定一下,你确定你理解正确吗?也许您误解了需求?好吧,您可以做的一件事是使函数共享状态,即简单地使用全局变量。然而,这是一种糟糕的设计方法。但它会解决这个特殊的问题,尽管方式并不好。
  • 顺便说一句,用 google-python-api 标记这是一个错误吗?
  • 这里的反对意见很严厉。 OP 提供了要求,并提供了一个尝试,这使得它就第一个问题而言非常好。
  • 所以,我的意思是 gist,但同样,您应该仔细检查您是否正确理解了这些要求。
  • 问题似乎是您是编程新手,不了解函数的一般用途。设计事物的正确方法是拥有执行计算并返回结果的函数,然后是调用函数并对结果执行某些操作的其他代码,例如打印它们。

标签: python python-3.x google-python-api


【解决方案1】:

如果不从 sum 中返回任何内容,除非您从标准输出中获取总和,否则真的没有办法做您想做的事。如果函数没有返回任何东西,那么第二个函数将无法使用它的结果。你需要这样做。

def sum(a, b, c):
    return a + b + c
def ar():
    print(sum(1, 2, 3)/3)

【讨论】:

  • 说说你对共享状态的看法,依靠捕获标准输出可能更糟糕......另外,sum 中的sum_本地。所以这会抛出一个TypeError
  • 我不是建议从标准输出捕获。我认为这是一个可怕的想法。我只是说OP想要做的并不是一个合理的解决方案。是的,绝对没有意识到 sum_。非常愚蠢的错误。感谢您指出。
  • 当然,是的,并不是暗示您是在暗示,更多的是一般性评论。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
相关资源
最近更新 更多