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

时间:2016-12-02 17:14:32

标签: python

我正在学习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()

1 个答案:

答案 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,我不明白)。

最后,您不需要两个嵌套循环。如果你有两个嵌套循环,就像你在二维数组上求和一样。在这里,你只是添加了一维系列。