2024月06月Python三级实操答案及解析.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

一、简答题

1、36.字母去重排序

在一列表中产生n个大写字母,删除其中重复字母,并按照A到Z顺序排列输出。同

时输出删除字母个数。

例如输入5随机产生原始字母:[D,H,K,E,H]

输出:去重后字母排序:[D,E,H,K]输出:共删除字母个数:1个。

请编写程序实现上述功能,或补全代码。

importrandom

\#导入随机数模块

maxn=int(input(输入生成大写字母个数))

a=[]

foriinrange(maxn):

c=random.randint(1,26)#随机产生1-26之间的整数

numb=chr(64+c)

print(随机产生原始字母:,a)

m,n=0,maxn

whilemn:

i=n-1

while②:

i=i-1

ifi==m:

else:

a.remove(a[i])

n=n-1

foriinrange(n):

forjinrange(len(a)-1,i,-1):

ifa[j]a[j-1]:

print(去重后字母排序:,a)

print(共删除字母个数:,⑤,个)

解析:

首先,我们需要理解题目的要求。题目要求我们生成一系列大写字母,删除其中的

重复字母并按照字母顺序排序输出,同时输出删除的字母个数。根据这个要求,我

们可以逐步补全代码。

在①处,我们需要将随机生成的大写字母添加到列表a中,所以应该使用append方

法。在②处,我们需要找到第一个重复字母的位置,所以需要循环直到i大于起始

位置m。在③处,如果找到重复字母,我们跳出内层循环。在④处,我们需要对列

表进行排序,可以使用Python内置的sorted函数或者自己实现排序算法。在⑤处,

我们需要输出删除的字母个数,即原始列表的长度减去去重后的长度。具体实现可

以使用len函数计算列表长度。同时需要注意处理列表中的重复元素,可以使用set

去重或者使用列表的remove方法删除重复元素。最后输出排序后的列表和删除的字

母个数即可。

2、37.植树问题

如下图所示,在“植树.csv”中记录着2个班级多次植树的信息(第一列为班级名,第

二列为本次植树的数量),输出每个班级植树的总数,请你补全代码。

importcsv

withopen(/data/植树.csv)asf:

h=list(①)

s1=0

s2=0

foriinrange(len(h)):

ifint(h[i][0])==1:

s1=s1+int(h[i][1])

ifint(h[i][0])==2:

s2=s2+②

print(s1,s2)

输出:

368362

解析:

这个问题是关于读取CSV文件并计算每个班级植树的总数。代码的主要逻辑是打开

CSV文件,读取每一行的数据,然后根据班级编号(第一列)将植树数量(第二列

)累加到对应的总和中。

对于第一个空①,我们需要使用csv模块的reader函数来读取CSV文件中的数据,因

此这里应该填写csv.reader(f)。

对于第二个空②,我们需要将当前行的植树数量加到对应班级的累计总数上,因此

这里应该填写int(h[i][1]),即将当前行的第二列数据(即植树数量)转换为整数并

累加到s2上。

完整的代码应该是这样的:

importcsv

withopen(/data/植树.csv)asf:

h=list(csv.reader(f))#读取CSV文件中的数据

s1=0#班级1的植树总数

s2=0#班级2的植树总数

foriinrange(len(h)):#遍历每一行数据

ifint(h[i][0])==1:#如果是班级1

s1+=int(h[i][1])#将植树数量累加到s1上

elifint(h[i][0])==2:#如果是班级2

s2+=int(h[i][1])#将植树数量累加到s2上

print(s1,s2)#输出两个班级的总植树数量

运行这段代码后,会输出每个班级的植树总数。题目中给出的输出是368和362,这

是假设CSV文件中的数据与题目描述相符的情况下得出的结果。

3、38.合作小组

班里有35位同学,新来的王老师想以随机组合的方式给同学们组建合作小组促进学

习,已知同学们的学号范围是1~35号,王老师

文档评论(0)

喵呜刷题 + 关注
实名认证
文档贡献者

来喵呜刷题,完成你的职业蜕变!

1亿VIP精品文档

相关文档