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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

代碼和報錯如圖所示:求指點

代碼和報錯如圖所示:求指點

蕭十郎 2023-03-18 18:14:35
我知道這個意思是.isdigit不能接受整型數據輸入,但是input不是會把輸入的數字都變成字符串類型的嗎?我輸入什么都是變成字符串類型啊。所以為什么還會有這種報錯提示?網上說要用raw_input(),但是現在的python3已經沒有這個函數了,我用的是3.8
查看完整描述

1 回答

?
一只斗牛犬

TA貢獻1784條經驗 獲得超2個贊

之所以報錯是因為while循環從第2次開始執行時, selectcourse這個變量的類型就變成 整型 了, 而整型是沒有isdigit()函數的, 所以才會報錯.
咱們簡單的過一下代碼的執行過程:
a.第12行執行后, 你輸入的是2, 所以此時selectcourse這個變量是字符串類型值'2', 從你的提問來看,這一點你是理解的, 接著向下看
b.然后就執行while True這個循環了, 我們先看這個while循環第一次執行, 第14行的if語句條件判斷是true,因為2是數字, 所以if下的15,16行會被執行, 這塊是關鍵, 第15行執行后, selectcourse的類型就不再是一開始的字符串類型了, 而是變成了整型; 16行打印輸出就不講了. 這是while True循環的第一次執行, 這次執行最最關鍵的就是將selectcourse這個變量的類型由字符串類型改為了整型(報錯的起始點就在這).
c.再看while循環的第2次執行, 第2次執行又到第14行判斷if條件這了, 你的報錯其實就是這會兒出現的, 因為第1次while循環已經將selectcourse這個變量的類型改為了整型, 所以第2次再去執行if的條件時, 就會報錯了, 因為selectcourse此時是整型, 而整型是沒有isdigit()函數的.

查看完整回答
反對 回復 2023-03-21
  • 1 回答
  • 0 關注
  • 113 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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