1 回答

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個(gè)贊
之所以報(bào)錯(cuò)是因?yàn)閣hile循環(huán)從第2次開始執(zhí)行時(shí), selectcourse這個(gè)變量的類型就變成 整型 了, 而整型是沒有isdigit()函數(shù)的, 所以才會報(bào)錯(cuò).
咱們簡單的過一下代碼的執(zhí)行過程:
a.第12行執(zhí)行后, 你輸入的是2, 所以此時(shí)selectcourse這個(gè)變量是字符串類型值'2', 從你的提問來看,這一點(diǎn)你是理解的, 接著向下看
b.然后就執(zhí)行while True這個(gè)循環(huán)了, 我們先看這個(gè)while循環(huán)第一次執(zhí)行, 第14行的if語句條件判斷是true,因?yàn)?是數(shù)字, 所以if下的15,16行會被執(zhí)行, 這塊是關(guān)鍵, 第15行執(zhí)行后, selectcourse的類型就不再是一開始的字符串類型了, 而是變成了整型; 16行打印輸出就不講了. 這是while True循環(huán)的第一次執(zhí)行, 這次執(zhí)行最最關(guān)鍵的就是將selectcourse這個(gè)變量的類型由字符串類型改為了整型(報(bào)錯(cuò)的起始點(diǎn)就在這).
c.再看while循環(huán)的第2次執(zhí)行, 第2次執(zhí)行又到第14行判斷if條件這了, 你的報(bào)錯(cuò)其實(shí)就是這會兒出現(xiàn)的, 因?yàn)榈?次while循環(huán)已經(jīng)將selectcourse這個(gè)變量的類型改為了整型, 所以第2次再去執(zhí)行if的條件時(shí), 就會報(bào)錯(cuò)了, 因?yàn)閟electcourse此時(shí)是整型, 而整型是沒有isdigit()函數(shù)的.
添加回答
舉報(bào)