【发布时间】:2020-12-24 04:14:42
【问题描述】:
公平地说,我对 python 很陌生。我试图了解嵌套函数,但是我无法获得我想要的输出。我希望我的 IQ_multiplier 函数返回通过clever_multiplier 输入的IQ 分数,后跟字符串“with multiplier”。 例如 158.4 ,“带乘数” 72、“有乘数” 等等。
...但是,我的第一次尝试一直给我没有字符串的乘数分数,而我的第二次尝试给了我乘数分数和字符串,但在第一个分数处停止。我知道可能有更简单的方法来执行我试图得到的输出(没有嵌套函数),但是我试图理解我对嵌套函数的尝试有什么问题。谢谢
IQ = [132, 92, 75, 97, 118]
def IQ_multiplier(IQ):
def clever_multiplier(IQ):
for val in IQ:
if val > 100:
return val * 1.2
else:
return val - 20
return (clever_multiplier(IQ), "with multiplier")
print(IQ_multiplier(IQ))
IQ = [132, 92, 75, 97, 118]
def IQ_multiplier(IQ):
def clever_multiplier(IQ):
for val in IQ:
if val > 100:
print (val * 1.2)
else:
print (val - 20)
return (clever_multiplier(IQ), "with multiplier")
print(IQ_multiplier(IQ))
【问题讨论】:
-
在您的第一次尝试中,您在列表上调用
clever_multiplier,但在第一次迭代时立即返回。我怀疑您实际上打算在列表的每个元素上调用clever_multiplier,而不是在整个列表上。 for 循环必须是外部函数的一部分,而不是内部函数。对于第二个,您的内部功能只是打印,但返回 None。所以你的结果将是无。同样,您可能希望在外部函数中使用 for 循环,而不是在内部函数中。
标签: python function printing nested return