嵌套用于循环交替运算符(无条件语句)

2024-04-29 02:37:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习约翰·泽尔的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()

Tags: thetoterm1in程序formainrange
1条回答
网友
1楼 · 发布于 2024-04-29 02:37:32

这是我将采取的方法:

tot = 0
denominator_size=1
denominator_sign=1
for i in range(n):
    tot += 4/(denominator_sign*denominator_size)
    denominator_size += 2
    denominator_sign = denominator_sign * (-1)
print(tot)

你要加的数列的分子是4,分母的大小是2,但符号是交替的。所以我将分母设置为两个不同的变量相乘:分母大小,每循环增加2,从1开始(所以1,3,5,…),分母符号,从1开始,然后每循环乘以-1(所以1,-1,1,-1,…)

使用变量sum通常被认为是一种糟糕的做法,因为python将它用作添加列表和其他内容的关键工作。所以我把跟踪变量改成了tot。我还将tot初始化为0(您的代码显示sum=1,我不明白)

最后,您不需要两个嵌套循环。如果有两个嵌套循环,就好像是在二维数组上求和。在这里,你只是把一个一维级数相加

相关问题 更多 >