day2-exercise
# Author: 刘佳赐-Isabelle October 22,2018 """ 1、有变量name = "aleX leNb" 完成如下操作: 1) 移除 name 变量对应的值两边的空格,并输出处理结果 2) 移除name变量左边的"al"并输出处理结果 3) 移除name变量右面的"Nb",并输出处理结果 4) 移除name变量开头的a"与最后的"b",并输出处理结果 5) 判断 name 变量是否以 "al" 开头,并输出结果 6) 判断name变量是否以"Nb"结尾,并输出结果 7) 将 name 变量对应的值中的 所有的"l" 替换为 "p",并输出结果 8) 将name变量对应的值中的第一个"l"替换成"p",并输出结果 9) 将 name 变量对应的值根据 所有的"l" 分割,并输出结果。 10) 将name变量对应的值根据第一个"l"分割,并输出结果。 11) 将 name 变量对应的值变大写,并输出结果 12) 将 name 变量对应的值变小写,并输出结果 13) 将name变量对应的值首字母"a"大写,并输出结果 14) 判断name变量对应的值字母"l"出现几次,并输出结果 15) 如果判断name变量对应的值前四位"l"出现几次,并输出结果 16) 从name变量对应的值中找到"N"对应的索引(如果找不到则报错),并输出结果 17) 从name变量对应的值中找到"N"对应的索引(如果找不到则返回-1)输出结果 18) 从name变量对应的值中找到"X le"对应的索引,并输出结果 19) 请输出 name 变量对应的值的第 2 个字符? 20) 请输出 name 变量对应的值的前 3 个字符? 21) 请输出 name 变量对应的值的后 2 个字符? 22) 请输出 name 变量对应的值中 "e" 所在索引位置? """ # name = "aleX leNb" # # task_1 = name.strip() # print(task_1) # # task_2 = name.strip("al") # print(task_2) # # task_3 = name.strip("Nb") # print(task_3) # # task_4 = name.strip("ab") # print(task_4) # # task_5 = name.startswith("al") # print(task_5) # # task_6 = name.endswith("Nb") # print(task_6) # # task_7 = name.replace("l", "p") # print(task_7) # # task_8 = name.replace("l", "p", 1) # print(task_8) # # task_9 = name.split("l") # print(task_9) # # task_10 = name.split("l", 1) # print(task_10) # # task_11 = name.upper() # print(task_11) # # task_12 = name.lower() # print(task_12) # # task_13 = name.capitalize() # print(task_13) # # task_14 = name.count("l") # print(task_14) # # task_15 = name.count("l", 1, 5) # print(task_15) # # task_16 = name.index("N") # print(task_16) # # task_17 = name.find("N") # print(task_17) # # task_18 = name.find("X le") # print(task_18) # # 19 # print(name[1]) # # 20 # print(name[0:3]) # # 21 # print(name[-2:]) # # 22 # print(name.find('e')) """ 2、有字符串s = "123a4b5c" 1)通过对s切片形成新的字符串s1,s1 = "123" 2)通过对s切片形成新的字符串s2,s2 = "a4b" 3)通过对s切片形成新的字符串s3,s3 = "1345" 4)通过对s切片形成字符串s4,s4 = "2ab" 5)通过对s切片形成字符串s5,s5 = "c" 6)通过对s切片形成字符串s6,s6 = "ba2" """ # s = "123a4b5c" # task_21 = s[0:3] # print(task_21) # task_22 = s[3:6] # print(task_22) # task_23 = s[::2] # print(task_23) # task_24 = s[1:-2:2] # print(task_24) # task_25 = s[-1] # print(task_25) # task_26 = s[-3:0:-2] # print(task_26) '''3、使用while或for循环分别打印字符串s="asdfer"中每个元素。''' # s = "asdfer" # for i in s: # print(i) '''4、使用for循环对s="asdfer"进行循环,但是每次打印的内容都是"asdfer"。''' # s = "asdfer" # for i in range(len(s)): # print(s) '''5、使用for循环对s="abcdefg"进行循环,每次打印的内容是每个字符加上sb, 例如:asb, bsb,csb,...gsb。''' # s = "abcdefg" # for i in range(len(s)): # print(s[i]+"sb") '''6、使用for循环对s="321"进行循环,打印的内容依次是:"倒计时3秒","倒计时2秒","倒计时1秒","出发!"。''' # s = "321" # num = 0 # for i in s: # print('倒计时%s秒' % i) """ 7、实现一个整数加法计算器(两个数相加): 如:content = input("请输入内容:") 用户输入:5+9或5+ 9或5 + 9,然后进行分割再进行计算。 """ # content = input("please input content:") # ls = content.split("+") # sum_result = int(ls[0].strip()) + int(ls[1].strip()) # print(sum_result) """ 8、升级题:实现一个整数加法计算器(多个数相加): 如:content = input("请输入内容:") 用户输入:5+9+6 +12+ 13,然后进行分割再进行计算。 """ # content = input("please input content:") # ls = content.split("+") # sum_result = 0 # for i in range(len(ls)): # sum_result += int(ls[i].strip()) # print(sum_result) """ 9、计算用户输入的内容中有几个整数(以个位数为单位)。 如:content = input("请输入内容:") # 如fhdal234slfh98769fjdla """ # content = input("请输入内容:") # calculator = 0 # for i in range(10): # calculator += content.count("%d" % i) # print(calculator) """ 10、写代码,完成下列需求: 用户可持续输入(用while循环),用户使用的情况: 输入A,则显示走大路回家,然后在让用户进一步选择: 是选择公交车,还是步行? 选择公交车,显示10分钟到家,并退出整个程序。 选择步行,显示20分钟到家,并退出整个程序。 输入B,则显示走小路回家,并退出整个程序。 输入C,则显示绕道回家,然后在让用户进一步选择: 是选择游戏厅玩会,还是网吧? 选择游戏厅,则显示 ‘一个半小时到家,爸爸在家,拿棍等你。’并让其重新输入A,B,C选项。 选择网吧,则显示‘两个小时到家,妈妈已做好了战斗准备。’并让其重新输入A,B,C选项。 """ # way = input("Please select your way home:") # # while True: # if way == "A": # print("走大路回家") # way = input("Please further select:公交车or步行?") # if way == "公交车": # print("10分钟到家") # break # elif way == "步行": # print("20分钟到家") # break # elif way == "B": # print("走小路回家") # break # elif way == "C": # way = input("绕道回家,请继续选择:游戏厅还是网吧?") # if way == "游戏厅": # way = input("一个半小时到家,爸爸在家,拿棍等你。请重新输入:") # elif way == '网吧': # way = input("两个小时到家,妈妈已做好了战斗准备。请重新输入:") """ 11、写代码:计算 1 - 2 + 3 ... + 99 中除了88以外所有数的总和? """ # result = 0 # num = 1 # while num < 100: # if num % 2 == 1: # result += num # elif num % 2 == 0 and num != 88: # result -= num # num += 1 # print(result) """ 16、制作趣味模板程序需求:等待⽤户输⼊名字、地点、爱好,根据⽤户的名字和爱好进⾏任意现实 如:敬爱可亲的xxx,最喜欢在xxx地⽅⼲xxx """ # name = input("please input your name:") # hometown = input("please input your hometown:") # hobby = input("please input your hobby:") # # message = """ # -----Personal Info----- # %s 来自 %s # %s 的爱好是 %s # """ % (name, hometown, name, hobby) # print(message) """ 17、等待⽤户输⼊内容,检测⽤户输⼊内容中是否包含敏感字符?如果存在敏感字符提示“存在敏感字符请重新输⼊”, 并允许⽤户重新输⼊并打印。敏感字符:“⼩粉嫩”、“⼤铁锤” """ # message = input("Please leave a message:") # while True: # if "⼩粉嫩" in message: # message = input("存在敏感字符请重新输⼊:") # elif "⼤铁锤" in message: # message = input("存在敏感字符请重新输⼊:") # else: # print(message) # break """ 18、写代码,有如下列表,按照要求实现每一个功能 li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] 1)计算列表的长度并输出 2)列表中追加元素"seven",并输出添加后的列表 3)请在列表的第1个位置插入元素"Tony",并输出添加后的列表 4)请修改列表第2个位置的元素为"Kelly",并输出修改后的列表 5)请将列表l2=[1,"a",3,4,"heart"]的每一个元素添加到列表li中,一行代码实现,不允许循环添加。 6)请将字符串s = "qwert"的每一个元素添加到列表li中,一行代码实现,不允许循环添加。 7)请给列表添加元素"eric",并输出添加后的列表 8)请删除列表中的第2个元素,并输出删除的元素和删除元素后的列表 9)请删除列表中的第2至4个元素,并输出删除元素后的列表 10)请将列表所有得元素反转,并输出反转后的列表 11)请计算出"alex"元素在列表li中出现的次数,并输出该次数。 """ # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] # 1 # task_1 = len(li) # print(task_1) # 2 # li.append("seven") # print(li) # 3 # li.insert(0, "Tony") # print(li) # 4 # li[1] = "Kelly" # print(li) # 5 # l2 = [1, "a", 3, 4, "heart"] # li.extend(l2) # print(li) # 6 # s = "qwert" # li.extend(list(s)) # print(li) # 7 # li.append("eric") # 8 # li.pop(1) # print(li.pop(1)) # print(li) # 9 # del li[1:4] # print(li) # 10 # li.reverse() # print(li) # 11 # print(li.count("alex")) """ 19、写代码,有如下列表,利用切片实现每一个功能 li = [1, 3, 2, "a", 4, "b", 5,"c"] 1)通过对li列表的切片形成新的列表l1,l1 = [1,3,2] 2)通过对li列表的切片形成新的列表l2,l2 = ["a",4,"b"] 3)通过对li列表的切片形成新的列表l3,l3 = ["1,2,4,5] 4)通过对li列表的切片形成新的列表l4,l4 = [3,"a","b"] 5)通过对li列表的切片形成新的列表l5,l5 = ["c"] 6)通过对li列表的切片形成新的列表l6,l6 = ["b","a",3] """ # li = [1, 3, 2, "a", 4, "b", 5, "c"] # 1 # l1 = li[0:3] # print(l1) # 2 # l2 = li[3:6] # print(l2) # 3 # l3 = li[::2] # print(l3) # 4 # l4 = li[1:-1:2] # print(l4) # 5 # l5 = list(li[-1]) # print(l5, type(l5)) # 6 # l6 = li[-3:0:-2] # print(l6) """ 20、写代码,有如下列表,按照要求实现每一个功能。 lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"] 1)将列表lis中的"tt"变成大写(用两种方式)。 2)将列表中的数字3变成字符串"100"(用两种方式)。 3)将列表中的字符串"1"变成数字101(用两种方式)。 """ lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"] # 1 # lis[3][2][1][0] = lis[3][2][1][0].upper() # lis[3][2][1][0] = "TT" # print(lis) # 2 # 方法1 # lis[1] = "100" # lis[3][2][1][1] = "100" # print(lis) # 方法2 # while True: # for i in range(len(lis)): # if lis[i] == 3: # lis[i] = "100" # elif type(lis[i]) == list: # for j in range(len(lis[i])): # if lis[i][j] == 3: # lis[i][j] = "100" # elif type(lis[i][j]) == list: # for k in range(len(lis[i][j])): # if lis[i][j][k] == 3: # lis[i][j][k] = "100" # elif type(lis[i][j][k]) == list: # for l in range(len(lis[i][j][k])): # if lis[i][j][k][l] == 3: # lis[i][j][k][l] = "100" # break # print(lis) # 3 # lis[3][2][1][2] = 101 # lis[3][2][1][2] = int(lis[3][2][1][2]) + 100 # print(lis) """ 21、请用代码实现: li = ["alex", "eric", "rain"] 利用下划线将列表的每一个元素拼接成字符串"alex_eric_rain" """ # li = ["alex", "eric", "rain"] # task = "_".join(li) # print(task, type(task)) """ 22、利用for循环和range打印出下面列表的索引。 li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] """ # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] # for i in range(len(li)): # print(i) """ 23、利用for循环和range找出100以内所有的偶数并将这些偶数插入到一个新列表中。 """ # result = [] # for num in range(1, 100, 1): # if num % 2 == 0: # result.append(num) # print(result) """ 24、利用for循环和range 找出50以内能被3整除的数,并将这些数插入到一个新列表中。 """ # result = [] # for num in range(1, 50, 1): # if num % 3 == 0: # result.append(num) # print(result) """ 25、利用for循环和range从100~1,倒序打印。 """ # for num in range(100, 0, -1): # print(num) """ 26、利用for循环和range从100~10,倒序将所有的偶数添加到一个新列表中,然后对列表的元素进行筛选,将能被4整除的数留下来。 """ # result = [] # for num in range(100, 10, -2): # if num % 4 == 0: # result.append(num) # print(result) """ 26、利用for循环和range,将1-30的数字一次添加到一个列表中,并循环这个列表,将能被3整除的数改成*。 """ # result = [] # for i in range(1, 31, 1): # result.append(i) # print(result) # # for i in range(len(result)): # if result[i] % 3 == 0: # result[i] = "*" # print(result) """ 27、查找列表li中的元素,移除每个元素的空格,并找出以"A"或者"a"开头,并以"c"结尾的所有元素, 并添加到一个新列表中,最后循环打印这个新列表。 li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", " aqc"] """ # lis = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", " aqc"] # result = [] # for i in range(len(lis)): # lis[i] = lis[i].strip() # if lis[i].startswith("A") or lis[i].startswith("a") or lis[i].endswith("c"): # result.append(lis[i]) # print(lis[i]) # print(result) """ 28、开发敏感词语过滤程序,提示用户输入评论内容,如果用户输入的内容中包含特殊的字符: 敏感词列表 li = ["苍老师", "东京热", "武藤兰", "波多野结衣"] 则将用户输入的内容中的敏感词汇替换成等长度的*(苍老师就替换***),并添加到一个列表中;如果用户输入的内容没有敏感词汇,则直接添加到上述的列表中。 """ # sensitive_vol = ["苍老师", "东京热", "武藤兰", "波多野结衣"] # result = [] # # message = input("请留言:") # 批改前: # while True: # for i in range(len(sensitive_vol)): # if sensitive_vol[i] in message: # message = message.replace(sensitive_vol[i], "*"*len(sensitive_vol[i])) # result.append(message) # print(message) # print(result) # break # 批改后 # while True: # for i in sensitive_vol: # 列表可以直接用for循环的, 不用取索引 # if i in message: # message = message.replace(i, "*"*len(i)) # result.append(message) # print(message) # print(result) # break """ 29、有如下变量(tu是个元祖),请实现要求的功能 tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44]) a. 讲述元祖的特性 b. 请问tu变量中的第一个元素 "alex" 是否可被修改? c. 请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 "Seven" d. 请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 "Seven" """ # tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11, 22, 33)}, 44]) # 1 元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组。 # 2 不可以 # 3 "k2"对应的值是列表,"k2"对应的值可以被修改 # print(type(tu[1][2]["k2"])) # tu[1][2]["k2"].insert(0, "seven") # print(tu) # 4 "k3"对应的值是元组,不可以被修改 # print(type(tu[1][2]["k3"])) """ 30、字典dic,dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]} a. 请循环输出所有的key b. 请循环输出所有的value c. 请循环输出所有的key和value d. 请在字典中添加一个键值对,"k4": "v4",输出添加后的字典 e. 请在修改字典中 "k1" 对应的值为 "alex",输出修改后的字典 f. 请在k3对应的值中追加一个元素 44,输出修改后的字典 g. 请在k3对应的值的第 1 个位置插入个元素 18,输出修改后的字典 """ # dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]} # a # lis = list(dic.keys()) # for i in range(len(lis)): # print(lis[i]) # b # lis = list(dic.values()) # for i in range(len(lis)): # print(lis[i]) # c # lis = list(dic) # lis_2 = list(dic.values()) # for i in range(len(lis)): # print(lis[i], lis_2[i]) # d # dic["k4"] = "v4" # print(dic) # e # dic["k1"] = "alex" # print(dic) # f # dic["k3"].append(44) # print(dic) # g # dic["k3"].insert(0, 18) # print(dic) """ 31、av_catalog = { "欧美":{ "www.youporn.com": ["很多免费的,世界最大的","质量一般"], "www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"], "letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"], "x-art.com":["质量很高,真的很高","全部收费,屌丝请绕过"] }, "日韩":{ "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","verygood"]}, "大陆":{ "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]} } a.给此 ["很多免费的,世界最大的","质量一般"]列表第二个位置插入一个 元素:'量很大'。 b.将此 ["质量很高,真的很高","全部收费,屌丝请绕过"]列表的 "全部收费,屌丝请绕过" 删除。 c.将此 ["质量很高,真的很高","全部收费,屌丝请绕过"]列表的 "全部收费,屌丝请绕过" 删除。 d.将此["质量怎样不清楚,个人已经不喜欢日韩范了","verygood"]列表的 "verygood"全部变成大写。 e.给 '大陆' 对应的字典添加一个键值对 '1048' :['一天就封了'] f.删除此"letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"]键值对。 g.给此["全部免费,真好,好人一生平安","服务器在国外,慢"]列表的第一个元素,加上一句话:'可以爬下来' """ # av_catalog = { # "欧美": { # "www.youporn.com": ["很多免费的,世界最大的", "质量一般"], # "www.pornhub.com": ["很多免费的,也很大", "质量比yourporn高点"], # "letmedothistoyou.com": ["多是自拍,高质量图片很多", "资源不多,更新慢"], # "x-art.com": ["质量很高,真的很高", "全部收费,屌丝请绕过"] # }, # "日韩": { # "tokyo-hot": ["质量怎样不清楚,个人已经不喜欢日韩范了", "verygood"]}, # "大陆": { # "1024": ["全部免费,真好,好人一生平安","服务器在国外,慢"]} # } # a # av_catalog["欧美"]["www.youporn.com"].append("量很大") # print(av_catalog["欧美"]["www.youporn.com"]) # b # av_catalog["欧美"]["x-art.com"].pop(1) # print(av_catalog["欧美"]["x-art.com"]) # c # av_catalog["欧美"]["x-art.com"].pop(1) # print(av_catalog["欧美"]["x-art.com"]) # d # av_catalog["日韩"]["tokyo-hot"][1] = av_catalog["日韩"]["tokyo-hot"][1].upper() # print(av_catalog["日韩"]["tokyo-hot"]) # e # av_catalog["大陆"]["1048"] = ['一天就封了'] # print(av_catalog["大陆"]) # f # del av_catalog["欧美"]["letmedothistoyou.com"] # print(av_catalog["欧美"]) # g # av_catalog["大陆"]["1024"][0] = av_catalog["大陆"]["1024"][0] + " 可以爬下来" # print(av_catalog["大陆"]["1024"][0]) """ 32、有字符串"k:1|k1:2|k2:3|k3:4" 处理成字典 {'k':1,'k1':2....} """ # s = "k:1|k1:2|k2:3|k3:4" # lis = s.split("|") # result = {} # print(lis) # for i in lis: # ii = i.split(":") # result.setdefault(ii[0], ii[1]) # print(result) """ 33、元素分类 有如下值li= [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。 即: {'k1': 大于66的所有值列表, 'k2': 小于66的所有值列表} """ # li = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90] # l1 = [] # l2 = [] # for i in li: # if i > 66: # l1.append(i) # elif i < 66: # l2.append(i) # result = {"k1": l1, "k2": l2} # print(result)