1.101描述参照代码模板完善代码,实现下述功能。
输入一个字符串,其中的字符由(英文)逗号隔开,编程将所有字符连成一个字符串,输出显示在屏幕上。
输入输出示例答案:要点:1. 题目要求输入的字符用逗号隔开,所以,需要用到split(',')来从字符串里提取所输入的字符2. 经过split()函数的字符串,返回的是列表3. 字符串有个操作函数是 str.join(ls),可以把列表里的各个元素,用str 的容连接起来。
本题利用了空字符串‘’,来调用这个函数,因此,达到了所想要的效果:将带有逗号的字符串变换成了没有逗号的字符串。
4. 有一个不可忽视的地方是join()函数的括号里的参数是列表,如果忘了这一点,会犯错5. 这个功能利用好了,可以拓展,解决其他的问题。
2.102描述参照代码模板完善代码,实现下述功能。
有一个列表 studs 如下:studs=[{'sid':'103','Chinese':90,'Math':95,'English':92},{'sid':'101','Chinese':80,'Math':85,'English':82},{'sid':'102','Chinese':70,'Math':75,'English':72}]将列表 studs 的数据容提取出来,放到一个字典 scores 里,在屏幕上按学号从小到大的顺序显示输出 scores 的容。
容示例如下:101:[85, 82, 80]102:[75, 72, 70]103:[95, 92, 90]输入输出示例答案:studs=[{'sid':'103','Chinese':90,'Math':95,'English':92},{'sid':'101','Chinese':80,'Math':85,'English':82},{'sid':'102','Chinese':70,'Math':75,'English':72}] scores ={}for stud in studs:sv = stud.items()v =[]for it in sv:if it[0]=='sid':k = it[1]else:v.append(it[1])scores[k]= v# print(scores)so =list(scores.items())so.sort(key =lambda x:x[0],reverse =False)for l in so:print('{}:{}'.format(l[0],l[1]))studs= [{'sid':'103','Chinese': 90,'Math':95,'English':92},{'sid':'101','Chinese': 80,'Math':85,'English':82},{'sid':'102','Chinese': 70,'Math':75,'English':72}]lit=[]for i in studs:lst=[]a=i.get('sid')lst.append(i.get('Chinese'))lst.append(i.get('Math'))lst.append(i.get('English'))lst.sort(reverse=True)lat=[]lat.append(a+":")lat.append(str(lst))lit.append(lat)lit.sort()for i in lit:print("".join(i))要点:1. 字典作为元素,定义在列表里,用列表的遍历就可以从中提取出来2. 提取出来的元素直接就是字典,因此可以用 items()直接获取,形成键值对对象集合 sv;3. 对键值对对象集合sv遍历,就可以以元组it的方式访问其中的每一对键值对,sv = stud.items(),是第一个空的答案;4. 题目要求提取学生的学号,所以需要比较键it[0]是否是'sid',是则将学号it[1]提取出来作为新的字典scores的键k;不是则将成绩提取出来作为新字典scores的值v;5. 由于课程是多门,因此新字典scores的值v需要以列表的方式,保存各门课程的成绩,所以在不是的情况下,新字典scores的值v是利用append(it[1])的方式,追加到列表的后面;6. 对v做append操作,必须要事先定义v是一个空列表;因此需要在对每一条旧字典stud的键值对信息做处理的for it in sv:语句之前,用v = []初始化v为一个空列表;7. 经过对一条字典stud的处理,就形成一对k和v,所以接下来是给新字典scores添加一条键值对,scores[k] = v,是第二个空的答案8. 经过对全部的studs列表里的各条字典处理完之后,新的scores字典就全部生成。
9. 题目要求按学号从小到大的顺序输出学号和成绩,所以需要对字典的键值对容items()提取到列表so里,此处是第三个空的答案:so= list(scores.items())10. 用Lambda函数进行排序。
这个不在考试围里,所以代码模板直接给出语句;11. 对排好序的列表输出每组列表,这个直接给出语句,不再赘述。
3.103描述参照代码模板完善代码,实现下述功能。
从键盘输入一个用于填充的图符,一个字符串,一个要显示的字符串的总长度;编程将输入的字符串,居中输出显示在屏幕上,用填充图符补齐到输入的总长度。
如果总长度处输入的不是正整数,则提示请输入一个正整数,并重新提示输入,直至输入正整数。
输入:请输入填充符号:请输入要显示的字符串:qq请输入字符串总长度:r请输入一个正整数请输入字符串总长度:3.4请输入一个正整数请输入字符串总长度:4输出:qq输入输出示例答案:#请在____处填写一行代码#请在… 处填写多行代码#不要修改已给出代码a =input()# 请输入填充符号c =input()# 请输要显示的字符串flag =1while flag:try:b =eval(input())# 请输入字符串总长度except:flag =1print("请输入一个正整数")else:if type(b)==int and b>0:flag =0else:flag =1print("请输入一个正整数")print('{0:{1}^{2}}'.format(c,a,b))4.201描述参照代码模板完善代码,实现下述功能,不得修改其它代码。
使用turtle 库的 turtle.fd() 函数和 turtle.seth() 函数绘制螺旋状的正方形,正方形边长从 1 像素开始,第一条边从 0 度方向开始,效果如下图所示。
---------------------------------------------------------------自动评阅说明使用字符串形式输出____①____,____②____,____③____中应填代码即可以自动评阅得分例如,如果代码为:# 代码模板 | # 你的代码import turtle |importturtled =0| d =0for i in range(__1__):|for i in range(1): turtle.fd(__2__)| turtle.fd(100)d = __3__ | d =(i +100)*100turtle.seth(d)| turtle.seth(d)则在提交代码页面输入:print('1','100','(i + 100) * 100')提交后即可以查看得分注:如果有运算符,请在运算符两侧加上空格习题讲解答案:import turtled =0k =1for j in range(10):for i in range(4):turtle.fd(k)d +=91turtle.seth(d)k += 2turtle.done()要点:1. 降低了难度,让填写的都是最简单的5.202描述参照代码模板完善代码,实现下述功能,可以修改其它代码。
附件文件 question.txt 中有一道 Python 选择题,第 1 行的第 1 个数据为题号,后续的 4 行是 4 个选项。
示例容如下:3. 以下关于字典类型的描述,错误的是:A. 字典类型中的数据可以进行分片和合并操作B. 字典类型是一种无序的对象集合,通过键来存取C. 字典类型可以在原来的变量上增加或缩短D. 字典类型可以包含列表和其他数据类型,支持嵌套的字典读取其中的容,提取题干和四个选项的容,利用 jieba 分词并统计出现频率最高的 3 个词,其中要删除以下的常用字和符号“的,::可以是和中以下B”,作为该题目的主题标签,显示输出在屏幕上。
输入输出示例答案:import jiebafi =open("question.txt",'r')con =''num =0for l in fi:l=l.replace('\n','').strip().split('.') # print(l)try:ft =eval (l [0])except:passelse:num = ftcon += l [1]print('第{}题的主题是:'.format(num)) conls = jieba.lcut(con)dict={}for word in conls:dict[word]=dict.get(word,0)+1dictls =list(dict.items())dictls.sort(key =lambda x:x[1], reverse =True)k =0for it in dictls:if it[0]in'的,::可以是和中以下B':continueelse:if k ==3:breakelse:print('{}:{}'.format(it[0],it[1]))k +=1fi.close()要点:1. 导入jieba库,使用lcut分词,返回列表conls2. 打开文件,读文件,关闭文件3. 按行从文件里读,每一行是一个字符串,用strip和split处理成列表,因为要识别题号,还要提取题目和选项的容,所以要按照'.'分隔来提取,分别返回题号和选项号作为列表l的第0个字段,后面的容是列表l的第一个字段;4. 为了识别题号,要利用eval,并逆向利用try-except结构捕捉第一个字段是整数的字段,把题号提取出来放到num里面,把其他的容都用字符串加法,拼成一个大字符串con5. 给出第一句显示:print('第{}题的主题是:'.format(num))6. 接下来处理con,提取整个题干的主题词:7. 用jieba分词,然后用字典dict来保存没个词出现的次数。