1. 程式人生 > >python學習——自己出現的一些錯誤及解決

python學習——自己出現的一些錯誤及解決

感覺學校開的python課講得太慢,卻也不是很細緻。很多東西還是要靠自己摸索。

開一文記錄自己寫程式碼時出現的種種問題

主要是用spyder和IDLE

2018.9.22

spyder

點選執行之後出現ipdb

進入了除錯模式(我都不知道怎麼進入的)

退出:在右邊敲ipdb> q

2018.9.25

發現自己對各種列表型別還是不清楚鴨

第4次作業7

歌唱比賽進行海選活動,歌手分為兩組,按序號進行投票,第一組歌手的編號為1、2、3、4、5,第二組歌手的編號為6、7、8、9、10,投票編號為4、7、9、1、2、2、6、2、2、1、6、9、7、4、5、5、7、9、5、5、4,請對投票資料進行分析,完成以下問題

(5)對任意給定的歌手編號,判斷其是否獲得投票

l是一個字串,敲0進去數的話,其實是數到了10裡面的0

沒必要變成字串啊,set就是set 

然後我利用判斷子集的方法這樣寫:

a = {1,2,3,4,5}
b = {6,7,8,9,10}
vote = {4,7,9,1,2,2,6,2,2,1,6,9,7,4,5,5,7,9,5,5,4}
c = a|b
yi = vote & c

m = {int(input('input the number:'))}
p = m.issubset(yi)
if p ==True:
    n = list(yi).count(list(m))
    print ('得票',n)
else:
    print('未得票')

執行結果:

獲得選票的有 {1, 2, 4, 5, 6, 7, 9}
第一組獲得選票的有 {1, 2, 4, 5}
第二組沒有獲得選票的是 {8, 10}
第二組新增一名選手後為 {6, 7, 8, 9, 10, 11}

input the number:4
得票 0

問題就來了,為什麼input一個明明有得票的編號,輸出結果是0呢?

我有點想放棄了qwq

20181016已經學到控制結構啦

課立方題目:

編寫程式讀取一個成績列表,以0作為成績輸入的結束,然後按照下面的方案對成績分級:

如果成績>=best-10, 那麼級別為A

如果成績>=best-20, 那麼級別為B

如果成績>=best-30, 那麼級別為C

如果成績>=best-40, 那麼級別為D

否則成績為F。

下面是一個示例執行:

Enter scores: 44 55 70 58 0

Student 1 score is 44 and grade is C

Student 2 score is 55 and grade is B

Student 3 score is 70 and grade is A

Student 4 score is 58 and grade is B

提示:依次將成績輸入新增到列表,然後依次判斷列表中的成績。

score = input('input:').split()
best = int(max(score))
i = 0
while score[i] != 0:
    if int(score [i]) >= best-10:
        print ('Student',i,'score is',score[i],'and grade is A')
    elif int(score [i]) >= best - 20:
        print('Student',i,'score is',score[i],'and grade is B')
    elif int(score [i]) >= best - 30:
        print('Student',i,'score is',score[i],'and grade is C')
    elif int(score [i]) >= best - 40:
        print ('Student',i,'score is',score[i],'and grade is D')
    else:
        print ('Student',i,'grade is F')
    i += 1

出現了一個錯誤

IndexError: list index out of range

意思是對應的列表不存在

的確啊,我給它的列表就是一個空的(因為未知有多少個要填進來)

查到的解決方法:新建一個列表往裡面逐漸新增(提示:用append)

等我試驗一下