习题练习
Posted Fay
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了习题练习相关的知识,希望对你有一定的参考价值。
1.实现一个整数加法计算器(俩个数相加)
如: content = input("请输入内容:")
如用户输入:5+9或者5 + 9 ,然后进行分割再进行计算
content = input("请输入内容:").strip().split("+") num = int(content[0]) + int(content[1]) print(num)
扩展多个数相加
content = input("请输入内容:").strip().split("+") count = 0 for i in content: #循环 count = count + int(i)#进行自加 print(count)
2.计算用户输入的内容中有几个整数.
如 content = input("请输入内容") gghguhy123hgygyguy
content = input("请输入内容") count = 0 for i in content: if i.isalnum(): count += 1 print(count)
扩展: 将123看成是一个整体,比如输入的是123,识别成是一个整体,返回1而不是返回3.
待定
3.查找列表li中的元素,移除每个元素的空格,并找出以"A"或者"a"
开头,并以"c"结尾的所有元素,并添加到一个新列表中,最后循环打印这个新列表
方法一: 用字符串操纵方法startswith,endswith
li = ["taibai ", "alexC", "AbC", "egon", "Rittian", "Wusir", " aqc"] s = [] for i in li: i = i.strip() if (i.startswith("A") or i.startswith("a")) and i.endswith("c"): s.append(i) for j in s: print(s)
返回:[‘aqc‘] 先将列表循环,然后去除空格,判断每次循环i这个字符串是不是以什么开头和结尾,注意or与and同时出现存在优先级的问题,所以需要将前面的or部分
括起来,满足条件的就添加到空列表s里面,然后打印出来.
方法二:将单个字符串提出来,用索引判断.
l1 = [] for i in li: i = i.strip() if i[0].upper() == "A" and i[-1] == "c": l1.append(i) print(l1)
返回:[‘aqc‘] 同样的循环,当i循环到某一个列表内的字符串时,用索引判断,str的前面和后面是不是A和c,满足条件就添加到列表l1中.
4.列表嵌套,打印列表里的每一个元素.
li = [1, 2, 3, ["alex", "wusir", "老男孩"], 4] for i in li: #循环整个大的列表 if type(i) == list:#当i等于列表的时候 for j in i: # print(j) else: print(i)
返回:
1
2
3
alex
wusir
老男孩
4
要求用for循环加上range写
li = [1, 2, 3, ["alex", "wusir", "老男孩"], 4] for index in range(len(li)): if type(li[index]) == list: for i in range(len(li[index])): print(li[index][i]) else: print(li[index])
5.开发敏感词语过滤程序,提示用户输入评论内容,如果用户输入的内容中包含特殊的字符:敏感词列表 li = ["苍老师","东京热",”武藤兰”,”波多野结衣”]
则将用户输入的内容中的敏感词汇替换成***,并添加到一个列表中;如果用户输入的内容没有敏感词汇,则直接添加到上述的列表中
思路:循环的是敏感词汇列表.i分别是li里的每一个元素,
如果敏感词汇在ret输入的评论里面
就将他替换
替换了之后
添加到一个新的列表里
打印列表
li = ["苍老师", "东京热", "武藤兰", "波多野结衣"] li1 = [] ret = input("请输入评论内容:") for i in li: if i in ret: ret = ret.replace(i, "*" * len(i)) li1.append(ret) print(li1)
#i的值循环出来就是列表里的敏感词汇,题目是要将敏感词汇替换成为*号,用replace(old.new.n/次数),正常情况下写成这样replace(i,"*"),但是这样只替换了
一次,到下次循环就没有被替换,所以需要加上替换的次数,想如果是次数,不可能直接写n吧,所以就可以用i的长度,意思是说,如果输入的敏感词汇与li中的词汇长度
想符合,就将全部替换成*.
ret = ret.replace(i, "*" * len(i)) ,这里的变量名ret,如果变成其他名a,如果是a,当i等于苍老师时,被替换了的赋值给a,当i等于东京热的时候,也被
替换掉了,赋值给a,但第二次替换的时候是先替换,然后把值赋给a,相当于将前面一次a已经替换成***的覆盖了,覆盖了就等于没有被替换,所以需要将每次替换的*
保存在ret里面,下次循环的时候就不会再替换,而且还被保存了,所有当整个输入敏感词汇下来,就全部被替换掉.
以上是关于习题练习的主要内容,如果未能解决你的问题,请参考以下文章