日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

程序语言python循环_Python语言程序设计之一--for循环

發布時間:2025/3/19 124 豆豆
生活随笔 收集整理的這篇文章主要介紹了 程序语言python循环_Python语言程序设计之一--for循环 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近學到了Pyhton中循環這一章。之前也斷斷續續學過,但都只是到了函數這一章就停下來了,寫過的代碼雖然保存了下來,但是當時的思路和總結都沒有記錄下來,很可惜。這次我開通了博客,就是要把這些珍貴的學習思考總結記錄下來。從現在開始。

關于這一章始終有幾個難點不懂。第一個就是每次循環過后,其中的累加變量是否要清零?這個問題困擾了我許久。很多次寫完代碼運行時發現,計算結果和我想要的結果根本不同。比如在《Python語言程序設計》這本書里,第5章習題第27題:計算π的值:π =4 * (1 - 1/3 + 1/5 - 1/7 + 1/9 +?… + (-1)i+1 / (2*i -1)),顯示當i=10000, 20000, ,,100000時π的值

題目不難,按公式寫就行了。由于希望顯示i在1萬、2萬,,時,π的值,所以用了兩層for循環。最開始的代碼如下:# 累加變量

sum = 0

for i in range(10000, 100001, 10000):

print('i =', i, '時,π的值為:', end = '')

for j in range(1, i+1):

sum += ((-1) ** (j + 1)) / (2 * j - 1)

pi = 4 * sum

print(pi)

運行結果如下:i = 10000 時,π的值為:3.1414926535900345

i = 20000 時,π的值為:6.283035307179826

i = 30000 時,π的值為:9.42459462743631

i = 40000 時,π的值為:12.566162281026036

i = 50000 時,π的值為:15.707734934615797

i = 60000 時,π的值為:18.849310921538994

i = 70000 時,π的值為:21.990889289414817

i = 80000 時,π的值為:25.13246944300482

i = 90000 時,π的值為:28.27405098548388

i = 100000 時,π的值為:31.415633639074002

很明顯,這個結果是錯的。只有第一個結果是計算正確的。開始我百思不得其解,我的循環變量感覺沒問題啊,循環步長也沒錯,計算公式也沒錯啊。怎么會這樣?我想了想,第一個結果正確,但是從第二個結果就開始錯,那問題就出在循環上面。當第一次計算結束時,此時sum 已經不再是0,而是有了一個值,由于sum定義在循環外部,所以下一次循環時,sum將帶著第一次循環后的值進入下一次計算,相當于每循環一次,sum的值都在增加。相應的,π的值也在增加,這也就解釋了為什么π的值越算越大。所以我將代碼修改如下,就是進行了一步微調:將sum的定義移到第一層for循環的內部,i每循環一次,sum都要清零!!!

修改后的代碼如下:for i in range(10000, 100001, 10000):

print('i =', i, '時,π的值為:', end = '')

# 下面這句非常重要,每次計算完后累加變量要清零!

sum = 0

for j in range(i + 1, 0, -1):

sum += ((-1) ** (j + 1)) / (2 * j - 1)

pi = 4 * sum

print(pi)

運行結果如下:i = 10000 時,π的值為:3.1414926535900345

i = 20000 時,π的值為:3.1415426535898248

i = 30000 時,π的值為:3.141559320256462

i = 40000 時,π的值為:3.1415676535897985

i = 50000 時,π的值為:3.1415726535897814

i = 60000 時,π的值為:3.141575986923102

i = 70000 時,π的值為:3.141578367875482

i = 80000 時,π的值為:3.1415801535897496

i = 90000 時,π的值為:3.1415815424786238

i = 100000 時,π的值為:3.1415826535897198

這樣才對嘛!隨著 i 的增大,計算結果只能是在小范圍內波動。

總結:循環變量是否要清零要看情況而定,但如果希望每次循環時,累加變量能以一個全新的值進入下一次循環那就要清零了。像這樣喜歡在代碼前面定義變量并賦初值的習慣,是寫C留下的。但遇到循環時要小心,變量的作用域會在不知不覺間讓你犯錯。

總結

以上是生活随笔為你收集整理的程序语言python循环_Python语言程序设计之一--for循环的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。