gpt4 book ai didi

python - 将 python 代码优化为一个 return 语句

转载 作者:行者123 更新时间:2023-12-01 03:21:10 25 4
gpt4 key购买 nike

我弄清楚了如何完成某项任务,但它要求我创建和定义两个完全独立的函数。我只想拥有原始函数和一个 return 语句,但我不知道该怎么做。

我有什么:

def fp_golden_ratio_avgdamp(): 
return fp(avgdamp(lambda x: 1 + 1/x), 1.0)

def avgdamp(f):
return lambda x: avg(float(x), f(x))

def avg(x, y):
return (x + y) / 2.0

当你调用 fp_golden_ratio_avgdamp() 时打印:

(25, 1.6180339887498754)

fp function 是 100% 有效的东西,它接受 lambda x: 1 + 1/x并设置值 1.0 作为某个错误点,打印

(32, 1.6180339887499087)

所以我试图传递给 fp 函数的是首先遍历其他两个函数的内容。

我的尝试是:

def fp_golden_ratio_avgdamp():
return fp( lambda x:( ((float(1 + 1/x) + (1 + 1/x)) / 2.0) ) , 1.0)

但这导致了与我要做的事情相同的结果

return fp(lambda x: 1 + 1/x, 1.0)

打印这个:

(32, 1.6180339887499087)

总结一下我的问题:我想摆脱 avgdampavg函数,只需将其优化为单行代码即可。

def fp_golden_ratio_avgdamp(): 
return fp( '''do something with this (lambda x: 1 + 1/x) that is the same computation of the avgdamp and avg functions''', 1.0)

有人可以帮我吗?

最佳答案

我正在逐步完成这个过程:

def avgdamp(f):
return lambda x: avg(float(x), f(x))

def avg(x, y):
return (x + y) / 2.0

这可以很容易地放入一个函数中:

def avgdamp(f):
return lambda x: (float(x) + f(x)) / 2.0

现在这应该与fp_golden_ratio_avgdamp结合使用:

def fp_golden_ratio_avgdamp(): 
return fp(avgdamp(lambda x: 1 + 1/x), 1.0)

因此,avgdamp 得到一个函数参数,并将其应用于第二个值,因此我们需要在那里应用原始函数:

def fp_golden_ratio_avgdamp(): 
return fp((lambda x: (float(x) + 1 + 1/x) / 2.0), 1.0)
<小时/>

请注意,您对两个值应用了 1+1/x 函数:

return fp( lambda x:( ((float(1 + 1/x) + (1 + 1/x)) / 2.0) ) , 1.0)

这是一个问题,因为 ((float(1 + 1/x) + (1 + 1/x)) = 2 * (1 + 1/x) (如果 x 是一个 float ),然后平均值就是:(1+1/x)

关于python - 将 python 代码优化为一个 return 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41911822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com