python中while迴圈的問題

時間 2021-06-28 17:07:02

1樓:小wo_在路上

是因為你使用的編譯器是python3.x的原因:

如果使用python2.x的話,列印出來將是(0,2)

可以比較明顯的看到,使用python3.x輸出的結果是一個浮點型(float),一個整型(int);而使用python2.x輸出的結果是元組(tuple, 直**就是帶括號)。

這就是python3.x和python2.x的比較明顯的一個區別---print

在python2.x中,print是個語句(statement),而在3.x中,print是個函式(function),最直接的例子:

在2.x中:

>>> print 'hello world'

hello world

在3.x中:

還有一個比較明顯的區別是在3.x中,最後列印的a為0.0(浮點型);而在2.

x中,a為0(沒有小數點,整型)。這就說明了為什麼在python3.x中迭代了178次,因為:

第一次:b = 1 + 1 = 2; a = 1 / 1 + 1 = 0.5

第二次:b = 2 + 1 = 3; a = 0.5 / 2 + 1 = 0.167

....

需要迭代178次,才使得 a 終於 < 0.

如果你在迴圈中加入列印的話,例如:

這樣,你比較容易知道原因了。

同樣,我列印出了python2.x的結果:

最後,列印是程式除錯很有用的方法,通過列印的結果,你會知道每一步的執行結果。

2樓:匿名使用者

在python中數字是有精度的,雖然數學上a是一個越來越小的小數,但是當a小到一定程度時超過python可以表示的精度時,值就為0,這時迴圈就結束了,輸出a和b的值

c 語言while迴圈,c語言while的用法

p1 p2 這個是賦值語句,而非比較運算。字元陣列雖然有大小限制,但是指標就不同,即便超過了大小,指標指向陣列越界後的下乙個記憶體單元,並不會發生錯誤 另外,printf s a 函式列印字串,它是在遇到字串結束符的時候才終止輸出,此時a陣列的值已經被賦值為p2所指向的記憶體空間的值。這個程式是錯的...

是while的迴圈問題

樓主把while k 後面的 去掉就是正解了 相當於while k 這是乙個空語句 所以當k 0的時候還是執行空。執行完後k 1 1此時的k不符合while。所以跳出 然後printf.此時顯然是 1 如果int k 2 while k 去掉分號 printf d n k 這裡的printf屬於wh...

如何在while迴圈和do while迴圈中加BREAK

不管是while還是do while,break 都是放到while中。舉例 public class test x system.out.print n 標點符號問題.while i 100 這裡有分號,表示無迴圈體的while迴圈.應當去掉分號,迴圈體用花括號括起來.while i 100 do...