2016-12-02 67 views
1

我正在通過John Zelle的Python書中的課程。我得到了第15章15節,他希望我能寫出一個計劃。嵌套循環交替操作符(沒有條件語句)

輸入 要總結的n個術語。 過程 N = 4/1 - 4/3 4/5 + - + 4/7 4/9 .... 輸出 總和Ñ

的我不是在點在那裏,他教條件陳述。所以我假設他希望我們使用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

這是我採取的方法:作爲分子,並通過2尺寸增大分母,但交替符號

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個。因此,我將分母設置爲乘法在一起的兩個不同變量:denominator_size,它將在每個週期中僅增加2,並從1開始(如此1,3,5,...)和denominator_sign,它們從1開始,然後是每個週期乘以-1(所以1,-1,1,-1,...)。

使用變量總和通常被認爲是不好的做法,因爲它被python用作加入列表和東西的關鍵工作。所以我將跟蹤變量更改爲tot。我也發起了總計爲0(你的代碼顯示sum = 1,我不明白)。

最後,你不需要兩個嵌套循環。如果你有兩個嵌套循環,就好像你正在求和一個二維數組。在這裏,你只是添加一維繫列。

+0

謝謝你,爲我澄清這一點。 –

+0

準備就緒時請標記爲正確 –