課程
/后端開發
/Python
/初識Python
這樣寫為什么不對呀,哪里錯啦?
2018-03-09
源自:初識Python 5-7
正在回答
#!/usr/bin/env?python #?-*-?coding:?utf-8?-*- ''' task.py 對已有的計算?0?-?100?的while循環進行改造,通過增加?continue?語句,使得只計算奇數的和: sum?=?0 x?=?1 while?True: ????sum?=?sum?+?x ????x?=?x?+?1 ????if?x?>?100: ????????break print?sum ''' sum?=?0.0 x?=?0 while?True: ????x?=?x?+?1 ????if?x?>?100: ????????break ????if?not?x?%?2?:???????????#?當x=?奇數時,3?%?2?=?true?,?not?3%2?=?not(非空字符串true),為false; ????????continue?????????????#?當x?=?偶數時,4?%2?=0?,python規定0?是flase?,not?4?%?2?=?true。 ????print?x??????????????????#?如果?if?語句判斷為?True,就會執行這個代碼塊,所以這代碼過濾的是偶數 ????sum?=?sum?+?x print?sum
先判斷x是否是偶數,就會直接跳出開始下一次循環,x還沒來得及增加,一直是2,成了死循環
當x=2時,會死循環
當經過第一次循環后x的值就變成了2,此時 x % 2的值就總是等于0了,正有程序就會反復執行第三行到第五行的代碼,進入死循環了。把代碼修改成下面的樣子就好了:
sum?=?0 x?=?1 while?True: ????sum?=?sum?+?x ????x?=?x?+?1 ????if?x?>?100: ????????break; ????if?x?%?2?==?0: ????????continue print?sum
?x = x + 1
?放到上面,避免
偶數時
if x % 2 == 0:
永遠成立造成死循環
sum = 0
x = 0
while True:
? ? x = x + 1
? ? if x > 100:
? ? ? ? break
? ? if x % 2 == 0:
? ? ? ? continue
? ? sum = sum + x
print sum
你想想當你的x是偶數時,它是不是一直就在x%2==0那一直死循環了
x為偶數時出現死循環,在continue前要使x加1
舉報
學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2018-03-20
2018-03-09
先判斷x是否是偶數,就會直接跳出開始下一次循環,x還沒來得及增加,一直是2,成了死循環
2018-03-09
當x=2時,會死循環
2018-03-09
當經過第一次循環后x的值就變成了2,此時 x % 2的值就總是等于0了,正有程序就會反復執行第三行到第五行的代碼,進入死循環了。把代碼修改成下面的樣子就好了:
2018-03-09
?x = x + 1
?放到上面,避免
偶數時
if x % 2 == 0:
永遠成立造成死循環
2018-03-09
sum = 0
x = 0
while True:
? ? x = x + 1
? ? if x > 100:
? ? ? ? break
? ? if x % 2 == 0:
? ? ? ? continue
? ? sum = sum + x
print sum
2018-03-09
你想想當你的x是偶數時,它是不是一直就在x%2==0那一直死循環了
2018-03-09
x為偶數時出現死循環,在continue前要使x加1