2 回答

TA貢獻(xiàn)1038條經(jīng)驗(yàn) 獲得超227個(gè)贊
存在兩個(gè)致命性的錯(cuò)誤
貼出的代碼L是個(gè)元組,為不可變類型,其并不存在append方法
while ... else...這樣的結(jié)構(gòu)在python中并不存在,記住python并不是ruby,else關(guān)鍵字不能單獨(dú)存在。它通常與if配對(duì)使用.?
建議理解python循環(huán)結(jié)構(gòu),tuple類型,認(rèn)識(shí)python中嚴(yán)格縮進(jìn)語法?
請(qǐng)仔細(xì)理解下面代碼
>>>?L=[] >>>?x=1 >>>?while?x?<?10: ...?????L.append(x*x) ...?????x=x+1 ... >>>?print?L [1,?4,?9,?16,?25,?36,?49,?64,?81] >>>?while?True: ...?????L.append(x*x) ...?????x=x+1 ...?????if?x?>?10: ...?????????????break ... >>>?print?L [1,?4,?9,?16,?25,?36,?49,?64,?81,?100] >>>

TA貢獻(xiàn)5條經(jīng)驗(yàn) 獲得超1個(gè)贊
while循環(huán)的條件為True時(shí),循環(huán)體中的代碼將執(zhí)行。在這里,你的條件是x < 101,那么在循環(huán)條件不滿足即x >= 101時(shí),循環(huán)將終止。
1. break語句只能在循環(huán)體中執(zhí)行,這里你的break語句跑到else代碼塊中了
2. while只能單獨(dú)使用,不能和else一起使用。else只能和if一起
3. 由于你的循環(huán)在x = 101時(shí)會(huì)結(jié)束,所以即使你在循環(huán)體中寫if x > 101 :
break 也是沒有作用的,永遠(yuǎn)不會(huì)執(zhí)行
添加回答
舉報(bào)