我正在学习John Zelle的Python书。我到了前15的Ch.3,他希望我写一个遗嘱程序。
输入 总结的n个术语。 过程 n = 4/1 - 4/3 + 4/5 - 4/7 + 4/9 .... 的输出 总和n
我不在他教导条件陈述的地方。所以我假设他希望我们使用for循环来完成这项工作。这可以在没有条件声明的情况下完成吗?
2 def main():
3 n = eval(input("Enter the number of terms: "))
4 sum =1
5 term1 = 1
6 term2 =1
7
8 for j in range(1,n,1):
9 term1 = 4 /j
10 for i in range(j):
11 # I was able to iterate through the first 4/1 -4/3
12 term2 = 4/(j+2)
13 term4 = -4/(j+2)
14
15
16 term3 = term1 - term2
17 term4 = term3 + term4
18 print(term3, term4 ) #How to iterate for 4/5 + 4/7 -4/9..
19
20 main()
答案 0 :(得分:0)
这是我要采取的方法:
add_header X-Frame-Options "SAMEORIGIN";
你加起来的系列有4个作为分子,分母的大小增加2,但是在符号中交替。所以我将分母设置为两个不同的变量相乘:denominator_size,每个周期只增加2并从1开始(所以1,3,5,...),denominator_sign,从1开始然后是每个循环乘以-1(所以1,-1,1,-1,...)。
使用变量sum通常被认为是不好的做法,因为它被python用作添加列表和内容的关键工作。所以我将跟踪变量更改为tot。我也将tot开始为0(你的代码显示sum = 1,我不明白)。
最后,您不需要两个嵌套循环。如果你有两个嵌套循环,就像你在二维数组上求和一样。在这里,你只是添加了一维系列。