Python的几个练习题
明天的面试也不知道公司会出什么题,为了平静一下心情,做几个python解解闷,自己模拟一下。
1)从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件"e:/PythonAAA/A/test.txt"中保存。
string=str(input("请输出一句小写字母的字符串:"))
f=open("e:/PythonAAA/A/test.txt","a")
string=string.upper()
f.write(string)
print("文件的内容是"+string)
f.close()
2)有两个磁盘文件A和B,A放一行字母"a,e,i,o,u",B方一行字母"love,xtz",要求把这两个文件中的信息合并(按字母顺序排列), 输出到一个新文件C中。
f=open("e:/PythonAAA/A/A.txt","w+")
f.write("aeiou")
f.close() #A文件搞定内容
f=open("e:/PythonAAA/A/B.txt","w+")
f.write("love,xtz")
f.close() #B文件搞定内容
f=open("e:/PythonAAA/A/A.txt")
aaa=f.read()
f.close()
f=open("e:/PythonAAA/A/B.txt")
bbb=f.read()
f.close()
string=list(aaa+bbb)
string.sort()
s=''
s=s.join(string)
s=s.strip(",") #把逗号去掉
f=open("e:/PythonAAA/A/C.txt","w+")
f.write(s)
print("A和B的文件内容已经有序的合并!")
f.close()
3)计算字符串中子串出现的次数。比如,aaa=www.163.net,搜索net,显示1次。
aaa=str(input("请输入一个字符串:"))
bbb=str(input("请输入要查询的字段:"))
num=aaa.count(bbb)
num=str(num)
print("子串出现的次数是"+num)
4)读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。比如输入4,就返回****,输入6,返回******,以此类推。
n=1
while n<=7:
a=int(input("please Enter a num:"))
if a >= 10:
print("NOOOOOO~")
break
else:
print(a * "*")
n=n+1
5)已知有一个敏感词文件叫words.txt,内容如下。当用户输入敏感词语的时候,打印出**,否则正常打印,比如输入"达赖是分裂国家的元凶,任何藏独分子都应该受到严惩”,应该输出"**是分裂国家的元凶,任何**分子都应该受到严惩"。
达赖
***
藏独
达尔富尔
民主
牛逼
你娘
你妈
human right
six four
jiangzemin
【评析】这种情况在实际应用中也非常常见的,如果输入个一句话里只有一个敏感词,那么这个题很简单,但是要是有多个敏感词,那么输出就会出现错误。难点也就是“多个敏感词”的情况。
首先要知道字符串的替换有两个方法,一个是.replace,另一个是import sub之后的re.sub。但是这两个各有各的问题:
re.sub必须要全拼写出要替换的内容,比如s1 = re.sub(r'BOY|GIRL', 'HUMAN', s0),这样S1就把S0语句里的"BOY"和"GIRL"都替换成了"HUMAN", 但是这个方法必须要指定出具体的要替换的文字,它并不支持变量。
.replace虽然支持变量,但是要替换几个文字就要写几个replace,比如aaa="达赖",bbb="six four",而要替换掉这两个词可以这么写:原文.replace(aaa,"**").replace(bbb,"**")。
但是想这道题,里面有十多个单词,就要写十多个replace,如果几百个词呢?也要写几百个replace吗?
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341