gpt4 book ai didi

python - 创建一个函数来对方程的结果求和。请看,没那么简单?

转载 作者:太空宇宙 更新时间:2023-11-03 13:44:36 24 4
gpt4 key购买 nike

我是编程新手,刚开始使用这个网站。我找不到任何与我的简单问题相似的东西。我正在使用 Phyton 3.3。我正在创建一个代码来测量太阳能电池板上的太阳能强度。一开始我做得很好,但我决定让方程式更复杂,以更好地反射(reflect)现实世界的情况。

我正在输入一个类似于我遇到的问题的简化方程:

total=0
def equation():
x=2+i
total+=x
print (total)

for i in range(1,32): #represents no of days in January (31 days)
equation()
for i in range (32,61): #represents no.of days in February (28days)
equation()

etc....for all the months

这就是问题所在(“total+=x”)。我无法将 x 的所有结果相加。错误说“total”在赋值之前被引用。现在我可以在函数中引用它,但它只会给我每次迭代的结果 (x),而不是所有迭代的 SUM。

真正的方程包含超过15行的公式。我想将方程式插入不同的范围(一年中的所有 12 个月)。我不想在每个范围下复制和粘贴这个巨大的公式。会显得凌乱。我更喜欢更有效的解决方案并重用代码。到目前为止,我还在摸不着头脑。

我还考虑过使用内置的 SUM 函数而不是“total+”,并找到使用“while”循环的各种方法来规避这个问题。运气不好

我正在学习类并在 Python 中使用 OOP。仍在尝试理解这些概念。但是我相信基础知识应该涵盖这个问题。但我不知道如何。几天来我一直在努力解决这个问题。非常感谢您的帮助。

如果我说的不是很清楚,请见谅。我会尽力澄清您的任何问题。

谢谢

扎克

最佳答案

你是指下面的代码吗?您似乎忘记了函数 equation()...

中的 i 参数
total=0
def equation(i):
global total
x=2+i
total+=x
print (total)

for i in range(1,32): #represents no of days in January (31 days)
equation(i)
for i in range (32,61): #represents no.of days in February (28days)
equation(i)

但我会这样写:

def equation(x):
return x + 2

total = sum(map(equation, range(1,32)))
total += sum(map(equation, range(32,61)))

print total # 1830

或者如果您有简单的等式(适合一行):

total = sum(map(lambda i: i + 2, range(1,32)))
total += sum(map(lambda i: i * 2, range(32,61)))

print total # 3226

关于python - 创建一个函数来对方程的结果求和。请看,没那么简单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22864573/

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