亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么這樣寫不對呀

http://img1.sycdn.imooc.com//5aa24542000127f301790196.jpg這樣寫為什么不對呀,哪里錯啦?

正在回答

8 回答

#!/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


0 回復 有任何疑惑可以回復我~

先判斷x是否是偶數,就會直接跳出開始下一次循環,x還沒來得及增加,一直是2,成了死循環

0 回復 有任何疑惑可以回復我~

當x=2時,會死循環

0 回復 有任何疑惑可以回復我~

當經過第一次循環后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


1 回復 有任何疑惑可以回復我~

?x = x + 1

?放到上面,避免

偶數時

if x % 2 == 0:

永遠成立造成死循環

1 回復 有任何疑惑可以回復我~

sum = 0

x = 0

while True:

? ? x = x + 1

? ? if x > 100:

? ? ? ? break

? ? if x % 2 == 0:

? ? ? ? continue

? ? sum = sum + x

print sum


0 回復 有任何疑惑可以回復我~

你想想當你的x是偶數時,它是不是一直就在x%2==0那一直死循環了

0 回復 有任何疑惑可以回復我~

x為偶數時出現死循環,在continue前要使x加1

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
初識Python
  • 參與學習       758393    人
  • 解答問題       8967    個

學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序

進入課程

為什么這樣寫不對呀

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號