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