python二级考试操作题10

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

请输入一个正整数

相关文档
最新文档