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)
等我試驗一下