我正在学习约翰·泽尔的Python书中的课程。我到了第3章第15节,他要我写一个遗嘱里的程序
输入 要总结的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()
这是我将采取的方法:
你要加的数列的分子是4,分母的大小是2,但符号是交替的。所以我将分母设置为两个不同的变量相乘:分母大小,每循环增加2,从1开始(所以1,3,5,…),分母符号,从1开始,然后每循环乘以-1(所以1,-1,1,-1,…)
使用变量sum通常被认为是一种糟糕的做法,因为python将它用作添加列表和其他内容的关键工作。所以我把跟踪变量改成了tot。我还将tot初始化为0(您的代码显示sum=1,我不明白)
最后,您不需要两个嵌套循环。如果有两个嵌套循环,就好像是在二维数组上求和。在这里,你只是把一个一维级数相加
相关问题 更多 >
编程相关推荐