感觉学校开的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)
等我试验一下