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的值
下列程式段中while迴圈執行的次數為int j 0 while(k 1)kA無限次
這個函式協調求解,還是需要代入數值再進行求解的 前面j寫錯了吧,是k吧!裡面迴圈體一次都不會執行 選a,因為迴圈條件表示式k 1,是將1賦值給k,使得永遠為真。是賦值號,而 才是等於號 你的疑惑在此 1.有以下程式段 int k 0 while k 1 k while 迴圈執行的次數是 答案選擇a的...
while迴圈中的p!NULL是指p data和p next其中不為空還是next不為空
p每次都指向當前結點的後繼 next p null,就是檢查結點是不是到了表尾,表尾就是一個空指標 單向連結串列 連結串列最後一個p next為null 其他的p next不位null p null與p next null區別?都起作用,前一個,p就是尾結點,後一個p是尾結點的前一個結點,單連結串列...
凶請教python的巢狀for迴圈
第一次執行第一條語句,x的值為 2,然後進入內迴圈。執行第二條語句,z的值依次賦為1和 1,然後分別列印 21 n 2 1 n。注意 n為換行符,python中每個print結束,系統自動加入一個換行符,如果print語句後面新增一個逗號 print x,z,就不會列印換行符了 第二次執行第一條語句...