合肥师范学院实验报告
课程名称:python程序设计 院(系):计算机学院 专业/年级: 计算机科学与技术
姓名: 刘强 学号:字符串和函数是什么 2010211067
实验三 ——字符串的基本处理 一、实验目的 1.了解字符串的表示方式。 2.掌握字符串的基本处理方法; 3.熟悉字符串处理函数和使用方法; 4.掌握字符串类型的格式化方法。 二、实验内容 在认真阅读教材及实验指导书的基础上,完成以下实验内容。 1.获得用户输入的一个数字,可能是整数或浮点数,a,计算a的三次方值,并打印输出。 要求: (1)输出结果采用宽度20个字符、居中输出、多余字符采用减号(-)填充。 (2)如果结果超过20个字符,则以结果宽度为准。 示例:input: 10 Output:--------1000-------- a=eval(input("请输入你想输入的数据:")) print(str(a**3).center(20,'-')) 2. 获得输入的一个字符串s,以字符减号(-)分割s,将其中首尾两段用加号(+)组合后输出。编写程序。 要求: 示例: input:Hefei-Normal-University Output:Hefei+University 程序: s=input() l=s.split('-') print(l[0]+'+'+l[-1]) 3.假设有一段英文,其中有单独的字母“I”误写为“i”,请编写程序进行纠正。 程序: s=input() li = s.split(' ') for i in range(len(li)): if li[i]=='i': li[i]='I' print(" ".join(li)) 4. 随机输入一个字符串,把最左边的10个不重复的英文字母(不区分大小写)挑选出来。 如没有10个英文字母,显示信息“not found”。请在理解参考程序的基础上,给出简化写法。 参考程序: a=input() b=a.split() c=''.join(b) d=list(set(list(c))) count=0 m=0 d.sort(key=c.index) #按顺序输出没有重复数字的一组序列 for i in range(len(d)): if 'z' >= d[i] >= 'a' or 'Z' >= d[i] >= 'A' : count=count+1 if count<10: #判断字符个数 print("not found") else: for i in range(len(d)): if m!=10 and 'z'>=d[i]>='a' or 'Z'>=d[i]>='A' : #判断是否为英文字母 m=m+1 print("{}".format(d[i]),end='') 修改后: s = list("".join(input().split(" "))) r = list() for i in s: if ord(i) in range(97,123) or ord(i) in range(65,91): if i not in r and i.lower() not in r and i.upper() not in r: r.append(i) if len(r) == 10: break if len(r) == 10: print("".join(r)) else: print("not found") 三、简述本次实验过程中出现的问题、解决方法、结果如何。 第一题的时候,打算获取“-”第一个和最后一个下标,然后通过下标删除中间的数据,最后拼接,但是不到删除下标内的方法,后放弃了,采用s.split('-'),后通过获取第一个和最后一个,拼接后满足题目。 第四题对程序修改源程序是对A-Z进行判断,方式效率低,采用我所写的方式比较好,再把前面的赋值方式用一行代表,减少代码的冗余。 四、实验总结。 通过这次试验,我发现对字符串的处理方式,方法比较多,解决问题的思路也比较广,对字符串的处理要首先理解其中的变化,明白其所代表方法的具体的作用,我做实验的时候,就是不停的去翻书籍,对书本上的字符函数,基本上没有什么印象,掌握熟练度比较低,对知识的把握程度较低。 |
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论