weibo_慕工程7133957
2018-11-21 11:56:38
T='12a34b56c'
for?i?in?T:????????
????if?i?==?'a':????????????
????????print(i,'年')????????
????elif?i?==?'b':????????????
????????print(i,'月')????????
????elif?i?==?'c':????????????
????????print(i,'日')????????
????else:????????????
????????digit=eval(i)????????????
????????print(i,"奇數(shù)")?if?digit?in?[1,3,5,7,9]?else?print(i,"偶數(shù)")
????
#?將中間2個(gè)elif改為if會(huì)提示SyntaxError:?unexpected?EOF?while?parsing錯(cuò)誤
5 回答

MyFray
TA貢獻(xiàn)2條經(jīng)驗(yàn) 獲得超0個(gè)贊
如果兩個(gè)elif改成if如果沒(méi)有最后的else也是可以的,只是會(huì)增加多判斷,執(zhí)行完第一個(gè)if之后如果成立,仍然會(huì)運(yùn)行后面的if。
但是,由于有else的存在,else只跟第三個(gè)if構(gòu)成一對(duì)。
也就是說(shuō)如果i是a,在第四行判斷一次,是a,打印出來(lái),第6行判斷一次不是a,不執(zhí)行,第8行判斷一次,不成立,并執(zhí)行else,else中的eval把引號(hào)剝掉了,就成了一個(gè)變量名a賦值給digit,由于事先沒(méi)有定義變量a,因此報(bào)錯(cuò)。

qq_慕仙8248301
TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超0個(gè)贊
python的判斷語(yǔ)句的語(yǔ)法就是這樣規(guī)定的
if 條件:
????執(zhí)行語(yǔ)句
elif 條件:
????執(zhí)行語(yǔ)句
。。。。。。
else:
????執(zhí)行語(yǔ)句
添加回答
舉報(bào)
0/150
提交
取消