习题练习

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里面,下次循环的时候就不会再替换,而且还被保存了,所有当整个输入敏感词汇下来,就全部被替换掉.


 

 

以上是关于习题练习的主要内容,如果未能解决你的问题,请参考以下文章

代码块练习题:看代码写程序的执行结果。

循环语句练习题2

一个练习题的代码

linux练习题01

Python练习题(基础知识练习题)

python练习题-20170916