zoukankan      html  css  js  c++  java
  • python3 练习题 day02

     
    
    '''
    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"
    # print(name.strip()) #1).
    # print(name[2:])     #2).
    # print(name[:-2])    #3).
    # print(name[1:-1])   #4).
    # print(name.startswith('al'))    #5).
    # print(name.endswith('Nb'))      #6).
    # print(name.replace('l', 'p'))   #7).
    # print(name.replace('l', 'p', 1))    #8).
    # print(name.split('l'))      #9).
    # print(name.split('l', 1))   #10).
    # print(name.upper())         #11).
    # print(name.lower())         #12).
    # print(name.capitalize())    #13).
    # print(name.count('l'))      #14).
    # print(name.count('l', 0, 4))    #15).
    # print(name.index('N'))      #16).
    # print(name.find('N'))       #17).
    # print(name.find('X le'))    #18).
    # print(name[1:2])            #19).
    # print(name[2:3])            #20).
    # print(name[-2:])            #21).
    # print(name.find('e'))       #22).
    
    '''
    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"
    # s1 = s[:3]  #1).
    # print(s1)
    # s2 = s[3:6] #2).
    # print(s2)
    # s3 = s[::2] #3).
    # print(s3)
    # s4 = s[1:6:2]   #4).
    # print(s4)
    # s5 = s[-1:]     #5).
    # print(s5)
    # s6 = s[-3::-2]  #6).
    # print(s6)
    
    '''
    3、使用while或for循环分别打印字符串s="asdfer"中每个元素。
    '''
    # s = "asdfer"      #while循环
    # i = 0
    # while i < len(s):
    #     print(s[i])
    #     i += 1
    
    '''
    for循环
    '''
    # s = "asdfer"
    # for item in s:
    #     print(item)
    
    '''
    4、使用for循环对s="asdfer"进行循环,但是每次打印的内容都是"asdfer"。
    '''
    # s = "asdfer"
    # for item in s:
    #     print(s)
    
    '''
    5、使用for循环对s="abcdefg"进行循环,每次打印的内容是每个字符加上sb, 例如:asb, bsb,
    csb,...gsb。
    '''
    # s = "abcdefg"
    # for item in s:
    #     print("%ssb" % item)
    
    '''
    6、使用for循环对s="321"进行循环,打印的内容依次是:"倒计时3秒","倒计时2秒","倒计时1秒","出
    发!"。
    '''
    # s = "321"
    # for num in s:
    #     print("倒计时%s秒"%num)
    # print("出发!")
    
    '''
    7、实现一个整数加法计算器(两个数相加):
    如:content = input("请输入内容:") 用户输入:5+9或5+ 9或5 + 9,然后进行分割再进行计算。
    '''
    # content = input("请输入两个数相加:")  #方法一
    # print(eval(content))
    
    '''
    方法二,使用split()
    '''
    # content = input("请输入两个数相加:")
    # lst = content.split('+')
    # Sum = 0
    # for item in lst:
    #     Sum += int(item.strip())
    # print(Sum)
    
    '''
    8、升级题:实现一个整数加法计算器(多个数相加):
    如:content = input("请输入内容:") 用户输入:5+9+6 + 12+   13,然后进行分割再进行计算。
    '''
    # content = input("请输入多个数相加:")  #方法一
    # print(eval(content))
    
    '''
    方法二
    '''
    # content = input("请输入多个数相加:")
    # lst = content.split('+')
    # Sum = 0
    # for item in lst:
    #     Sum += int(item.strip())
    # print(Sum)
    
    '''
    9、计算用户输入的内容中有几个整数(以个位数为单位)。
    如:content = input("请输入内容:")   # 如fhdal234slfh98769fjdla
    '''
    # content = input("请输入内容:").strip()
    # num = 0
    # for item in content:
    #     if item.isdigit():
    #         num += 1
    # print("您一共输入了"+str(num)+"个整数")
    
    
    '''
    10、写代码,完成下列需求:
    用户可持续输入(用while循环),用户使用的情况:
      输入A,则显示走大路回家,然后在让用户进一步选择:
      是选择公交车,还是步行?
      选择公交车,显示10分钟到家,并退出整个程序。
      选择步行,显示20分钟到家,并退出整个程序。
      输入B,则显示走小路回家,并退出整个程序。
      输入C,则显示绕道回家,然后在让用户进一步选择:
      是选择游戏厅玩会,还是网吧?
      选择游戏厅,则显示 ‘一个半小时到家,爸爸在家,拿棍等你。’并让其重新输入A,B,C选项。
      选择网吧,则显示‘两个小时到家,妈妈已做好了战斗准备。’并让其重新输入A,B,C选项。
    '''
    # Flag = True
    # while Flag:
    #     user_choise = input("请输入字母ABC中的一个(A:大路,B:小路,C:绕道): ").strip().upper()
    #     #判断用户输入的是否为字母,并且是否是ABC其中的一个
    #     if user_choise.isalpha() and user_choise in "ABC":
    #         pass
    #     else:
    #         print("输入有误,请输入字母'ABC'中的一个!")
    #         continue
    #
    #     #根据用户的选择做出响应的操作,用户选择A的情况
    #     if user_choise == "A":
    #         print("走大路回家")
    #         while True:
    #             sel_way = input("您是选择'公交车',还是'步行': ").strip()
    #             if sel_way == "公交车":
    #                 print("10分钟到家")
    #                 Flag = False
    #                 break
    #             elif sel_way == "步行":
    #                 print("20分钟到家")
    #                 Flag = False
    #                 break
    #             else:
    #                 print("输入有误,您是选择'公交车',还是'步行'")
    #                 continue
    #     #用户选择B的情况
    #     elif user_choise == "B":
    #         print("走小路回家")
    #         break
    #     #用户选择C的情况
    #     else:
    #         print("绕道回家")
    #         while True:
    #             sel_play = input("请选择'游戏厅'玩会,还是'网吧': ").strip()
    #             if sel_play == "游戏厅":
    #                 print("一个半小时到家,爸爸在家,拿棍等你。")
    #                 break
    #             elif sel_play == "网吧":
    #                 print("两个小时到家,妈妈已做好了战斗准备。")
    #                 break
    #             else:
    #                 print("输入有误,请选择'游戏厅'玩会,还是'网吧'")
    #                 continue
    
     
    
    '''
    11、写代码:计算 1 - 2 + 3 ... + 99 中除了88以外所有数的总和?
    '''
    # Sum = 0
    # for num in range(1,100):
    #     if num == 88:
    #         continue
    #     if num%2 == 1:
    #         Sum += num
    #     else:
    #         Sum -= num
    # print(Sum)
    
    '''
    16、制作趣味模板程序需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意现实
    如:敬爱可亲的xxx,最喜欢在xxx地方干xxx
    '''
    # username = input("请输入您的姓名: ").strip()
    # address = input("请输入您的地址: ").strip()
    # hobby = input("请输入您的爱好: ").strip()
    # print("敬爱可爱的%s,最喜欢在%s这个地方%s"%(username, address, hobby))
    
    '''
    17、等待用户输入内容,检测用户输入内容中是否包含敏感字符?如果存在敏感字符提示“存在敏感字符请重
    新输入”,并允许用户重新输入并打印。敏感字符:“小粉嫩”、“大铁锤”
    '''
    # while True:     #方法一
    #     contents = input("请输入您的内容: ")
    #     if "小粉嫩" in contents or "大铁锤" in contents:
    #         print("存在敏感字符,请重新输入您的内容!")
    #         continue
    #     else:
    #         print("您的内容: %s,发表成功!"%contents)
    #         break
    
    '''
    方法二 (列表,可用于检测多个敏感字符的情况)
    '''
    # sensitive_lis = ["小粉嫩", "大铁锤"]    #
    # contents = input("请输入您的内容: ")
    # i = 0
    # while i < len(sensitive_lis):
    #     if sensitive_lis[i] in contents:
    #         print("存在敏感字符,请重新输入您的内容.")
    #         contents = input("请输入您的内容: ")
    #         i = 0
    #         continue
    #     i += 1
    # print("您的内容: %s,发表成功!"%contents)
    
     
    
    '''
    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"]
    # print(len(li))      #1).
    # li.append("seven")  #2).
    # print(li)
    # li.insert(0, "Tony")    #3).
    # print(li)
    # li[1] = "Kelly" #4).
    # print(li)
    # l2 = [1, "a", 3, 4, "heart"]    #5).
    # li.extend(l2)
    # s = "qwert"     #6).
    # li.extend(s)
    # s2 = "eric"     #7).
    # for cou in range(li.count(s2)):
    #     li.remove(s2)
    # print(li)
    # s_del = li.pop(1)   #8).
    # print(s_del)
    # print(li)
    # del li[1:3]     #9).
    # print(li)
    # li.reverse()    #10).
    # print(li)
    # print(li.count("alex")) #11).
    
    '''
    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"]
    # l1 = li[:3]     #1).
    # print(l1)
    # l2 = li[3:6]    #2).
    # print(l2)
    # l3 = li[::2]    #3).
    # print(l3)
    # l4 = li[1:6:2]  #4).
    # print(l4)
    # l5 = li[-1:]    #5).
    # print(l5)
    # l6 = li[-3::-2]     #6).
    # print(l6)
    
    '''
    10、写代码,完成下列需求:
    用户可持续输入(用while循环),用户使用的情况:
      输入A,则显示走大路回家,然后在让用户进一步选择:
      是选择公交车,还是步行?
      选择公交车,显示10分钟到家,并退出整个程序。
      选择步行,显示20分钟到家,并退出整个程序。
      输入B,则显示走小路回家,并退出整个程序。
      输入C,则显示绕道回家,然后在让用户进一步选择:
      是选择游戏厅玩会,还是网吧?
      选择游戏厅,则显示 ‘一个半小时到家,爸爸在家,拿棍等你。’并让其重新输入A,B,C选项。
      选择网吧,则显示‘两个小时到家,妈妈已做好了战斗准备。’并让其重新输入A,B,C选项。
    '''
    # Flag = True
    # while Flag:
    #     user_choise = input("请输入字母ABC中的一个(A:大路,B:小路,C:绕道): ").strip().upper()
    #     #判断用户输入的是否为字母,并且是否是ABC其中的一个
    #     if user_choise.isalpha() and user_choise in "ABC":
    #         pass
    #     else:
    #         print("输入有误,请输入字母'ABC'中的一个!")
    #         continue
    #
    #     #根据用户的选择做出响应的操作,用户选择A的情况
    #     if user_choise == "A":
    #         print("走大路回家")
    #         while True:
    #             sel_way = input("您是选择'公交车',还是'步行': ").strip()
    #             if sel_way == "公交车":
    #                 print("10分钟到家")
    #                 Flag = False
    #                 break
    #             elif sel_way == "步行":
    #                 print("20分钟到家")
    #                 Flag = False
    #                 break
    #             else:
    #                 print("输入有误,您是选择'公交车',还是'步行'")
    #                 continue
    #     #用户选择B的情况
    #     elif user_choise == "B":
    #         print("走小路回家")
    #         break
    #     #用户选择C的情况
    #     else:
    #         print("绕道回家")
    #         while True:
    #             sel_play = input("请选择'游戏厅'玩会,还是'网吧': ").strip()
    #             if sel_play == "游戏厅":
    #                 print("一个半小时到家,爸爸在家,拿棍等你。")
    #                 break
    #             elif sel_play == "网吧":
    #                 print("两个小时到家,妈妈已做好了战斗准备。")
    #                 break
    #             else:
    #                 print("输入有误,请选择'游戏厅'玩会,还是'网吧'")
    #                 continue
    
    '''
    11、写代码:计算 1 - 2 + 3 ... + 99 中除了88以外所有数的总和?
    '''
    # Sum = 0
    # for num in range(1,100):
    #     if num == 88:
    #         continue
    #     if num%2 == 1:
    #         Sum += num
    #     else:
    #         Sum -= num
    # print(Sum)
    
    '''
    16、制作趣味模板程序需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意现实
    如:敬爱可亲的xxx,最喜欢在xxx地方干xxx
    '''
    # username = input("请输入您的姓名: ").strip()
    # address = input("请输入您的地址: ").strip()
    # hobby = input("请输入您的爱好: ").strip()
    # print("敬爱可爱的%s,最喜欢在%s这个地方%s"%(username, address, hobby))
    
    '''
    17、等待用户输入内容,检测用户输入内容中是否包含敏感字符?如果存在敏感字符提示“存在敏感字符请重
    新输入”,并允许用户重新输入并打印。敏感字符:“小粉嫩”、“大铁锤”
    '''
    # while True:     #方法一
    #     contents = input("请输入您的内容: ")
    #     if "小粉嫩" in contents or "大铁锤" in contents:
    #         print("存在敏感字符,请重新输入您的内容!")
    #         continue
    #     else:
    #         print("您的内容: %s,发表成功!"%contents)
    #         break
    
    '''
    方法二 (列表,可用于检测多个敏感字符的情况)
    '''
    # sensitive_lis = ["小粉嫩", "大铁锤"]    #
    # contents = input("请输入您的内容: ")
    # i = 0
    # while i < len(sensitive_lis):
    #     if sensitive_lis[i] in contents:
    #         print("存在敏感字符,请重新输入您的内容.")
    #         contents = input("请输入您的内容: ")
    #         i = 0
    #         continue
    #     i += 1
    # print("您的内容: %s,发表成功!"%contents)
    
     
    
    '''
    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()
    # print(lis)
    
    '''
    1)方法二
    '''
    # lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
    # lis[3][2][1].pop(0)
    # lis[3][2][1].insert(0, "TT")
    # print(lis)
    
    '''
    1)方法三 递归调用
    '''
    # lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
    # def edit_value(lis_p, old_v, new_v):
    #     for ind, item in enumerate(lis_p):
    #         if type(item) is list:
    #             edit_value(item, old_v,  new_v)
    #         else:
    #             if item == old_v:
    #                 lis_p[ind] = new_v
    # edit_value(lis, "tt", "TT")
    # print(lis)
    
    '''
    2)方法一
    '''
    # lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
    # lis[1] = "100"
    # lis[3][2][1][1] = "100"
    # print(lis)
    
    '''
    2)方法二
    '''
    # lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
    # lis.pop(1)
    # lis.insert(1, "100")
    # lis[3][2][1].pop(1)
    # lis[3][2][1].insert(1, "100")
    # print(lis)
    
    '''
    3)方法一
    '''
    # lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
    # lis[3][2][1][2] = 101
    # print(lis)
    
    '''
    3)方法二
    '''
    # lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
    # lis[3][2][1].pop(2)
    # lis[3][2][1].insert(2, 101)
    # print(lis)
    
    '''
    21、请用代码实现:
    li = ["alex", "eric", "rain"]
    利用下划线将列表的每一个元素拼接成字符串"alex_eric_rain"
    '''
    # li = ["alex", "eric", "rain"]
    # print("_".join(li))
    
    '''
    22、利用for循环和range打印出下面列表的索引。
    li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
    '''
    # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
    # for i in range(len(li)):
    #     print("元素'%s'的索引是: %d"%(li[i], i))
    
    '''
    23、利用for循环和range找出100以内所有的偶数并将这些偶数插入到一个新列表中。
    '''
    # lis = []
    # for i in range(2, 101):
    #     if i%2 == 0:
    #         lis.append(i)
    # print(lis)
    
    '''
    24、利用for循环和range 找出50以内能被3整除的数,并将这些数插入到一个新列表中。
    '''
    # lis = []
    # for i in range(3, 50):
    #     if i%3 == 0:
    #         lis.append(i)
    # print(lis)
    
     
    
     
    
    '''
    25、利用for循环和range从100~1,倒序打印。
    '''
    # for i in range(100, 0, -1):
    #     print(i)
    
    '''
    26、利用for循环和range从100~10,倒序将所有的偶数添加到一个新列表中,然后对列表的元素进行筛
    选,将能被4整除的数留下来。
    '''
    # lis = []
    # for i in range(100, 9, -1):
    #     if i%2 == 0:
    #         lis.append(i)
    #         if i%4 != 0:
    #             lis.remove(i)
    # print(lis)
    
    '''
    26、利用for循环和range,将1-30的数字一次添加到一个列表中,并循环这个列表,将能被3整除的数改
    成*。
    '''
    # lis = []
    # for i in range(1, 31):
    #     if i%3 == 0:
    #         i = '*'
    #     lis.append(i)
    # print(lis)
    
    '''
    27、查找列表li中的元素,移除每个元素的空格,并找出以"A"或者"a"开头,并以"c"结尾的所有元素,并添
    加到一个新列表中,最后循环打印这个新列表。
    li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", " aqc"]
    '''
    # li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", " aqc"]
    # lis = []
    # for item in li:
    #     item = item.strip()
    #     if item.upper().startswith('A') and item.endswith('c'):
    #         lis.append(item)
    # for item in lis:
    #     print(item)
    
    '''
    28、开发敏感词语过滤程序,提示用户输入评论内容,如果用户输入的内容中包含特殊的字符:
    敏感词列表 li = ["苍老师", "东京热", "武藤兰", "波多野结衣"]
    则将用户输入的内容中的敏感词汇替换成等长度的*(苍老师就替换***),并添加到一个列表中;如果用户输入
    的内容没有敏感词汇,则直接添加到上述的列表中。
    '''
    # li = ["苍老师", "东京热", "武藤兰", "波多野结衣"]
    # lis = []
    # contents = input("请输入评论内容:").strip()
    # for item in li:
    #     if item in contents:
    #         contents = contents.replace(item, '*'*len(item))
    # lis.append(contents)
    # print(lis)
    
    '''
    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])
    #a.元组是不可改变的列表
    #b.不可修改
    #c.列表,可修改
    # tu[1][2]['k2'].append('Seven')
    # print(tu)
    #d.元组,不可修改
    
    '''
    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]}
    # for k in dic.keys():        #a.
    #     print(k)
    # for v in dic.values():      #b.
    #     print(v)
    # for k, v in dic.items():    #c.
    #     print(k, ':', v)
    # dic.setdefault("k4", "v4")  #d.
    # print(dic)
    # dic["k1"] = "alex"          #e.
    # print(dic)
    # dic["k3"].append(44)        #f.
    # print(dic)
    # dic['k3'].insert(0, 18)     #g.
    # 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":["全部免费,真好,好人一生平安","服务器在国外,慢"]
    #     }
    # }
    # av_catalog["欧美"]["www.youporn.com"].insert(1, "量很大")    #a.
    # print(av_catalog)
    # av_catalog["欧美"]["x‐art.com"].pop()     #b).
    # print(av_catalog)
    # if av_catalog["欧美"]["x‐art.com"].count("全部收 费,屌丝请绕过") != 0:     #c).
    #     av_catalog["欧美"]["x‐art.com"].remove("全部收 费,屌丝请绕过")
    # print(av_catalog)
    # av_catalog["日韩"]["tokyo‐hot"][1] = av_catalog["日韩"]["tokyo‐hot"][1].upper()        #d).
    # print(av_catalog)
    # av_catalog["大陆"].setdefault("1048", ["一天就封了"])      #e).
    # print(av_catalog)
    # av_catalog["欧美"].pop("letmedothistoyou.com")      #f).
    # print(av_catalog)
    # av_catalog["大陆"]["1024"][0] = "可以爬下来," + av_catalog["大陆"]["1024"][0]     #g).
    # print(av_catalog)
    
    '''
    32、有字符串"k:1|k1:2|k2:3|k3:4" 处理成字典 {'k':1,'k1':2....}
    '''
    # s = "k:1|k1:2|k2:3|k3:4"
    # dic = {}
    # for item in s.split("|"):
    #     k,v = item.split(":")
    #     dic.setdefault(k, int(v))
    # print(dic)
    
    '''
    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]
    # dic = {'k1':[], 'k2':[]}
    # for num in li:
    #     if num > 66:
    #         dic['k1'].append(num)
    #     elif num < 66:
    #         dic['k2'].append(num)
    #     else:
    #         continue
    # print(dic)
    
    '''
    方式二
    '''
    # li = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
    # dic = {}
    # for num in li:
    #     if num > 66:
    #         dic.setdefault("k1", []).append(num)
    #     elif num < 66:
    #         dic.setdefault("k2", []).append(num)
    #     else:
    #         continue
    # print(dic)
    
     
    
     
    
    '''
    写代码,有如下字典,按照要求实现每一个功能dic = {'k1':'v1', 'k2':'v2', 'k3':'v3'}
    1.请循环遍历出所有的 key
    '''
    # dic = {'k1':'v1', 'k2':'v2', 'k3':'v3'}
    # for k in dic.keys():
    #     print(k)
    
    '''
    2.请循环遍历出所有的 value
    '''
    # dic = {'k1':'v1', 'k2':'v2', 'k3':'v3'}
    # for v in dic.values():
    #     print(v)
    
    '''
    3.请循环遍历出所有的 key 和 value
    '''
    # dic = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
    # for k, v in dic.items():
    #     print(k, v)
    
    '''
    4.请在字典中添加一个键值对, 'k4': 'v4',输出添加后的字典
    '''
    # dic = {'k1':'v1', 'k2':'v2', 'k3':'v3'}
    # # dic.setdefault('k4', 'v4')
    # dic['k4'] = 'v4'
    # print(dic)
    
    '''
    5.请删除字典中键值对'k1':'v1',并输出删除后的字典
    '''
    # dic = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
    # # del dic['k1']
    # dic.pop('k1')
    # print(dic)
    
    '''
    6.请删除字典中的键'k5'对应的键值对,如果字典中不存在键'k5',则不报错,并且让其返回None.
    '''
    # dic = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
    # if dic.get("k5") != None:
    #     del dic['k5']
    # else:
    #     print(None)
    
    '''
    7.请获取字典中'k2'对应的值.
    '''
    # dic = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
    # print(dic['k2'])
    
    '''
    8.请获取字典中'k6'对应的值,如果键'k6'不存在,则不报错,并且让其返回None.
    '''
    # dic = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
    # if dic.get("k6") != None:
    #     print(dic['k6'])
    # else:
    #     print(None)
    
    '''
    9.现有 dic2 = {'k1': 'v1', 'a': 'b'}通过一行操作使 dic2 = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3', 'a': 'b'}
    '''
    # dic = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
    # dic2 = {'k1': 'v111', 'a': 'b'}
    # dic2.update(dic)
    # print(dic2)
    
    '''
    10.组合嵌套题.写代码,有如下列表,按照要求实现每一个功能
    lis = [['k', ['qwe', 20, {'k1':['tt', 3, '1']}, 89], 'ab']]
    1).将列表lis 中的'tt'变成大写(用两种方式).
    2).将列表中的数字3编程字符串'100'(用两种方式).
    3).将列表中的字符串'1'变成数字101(用两种方式).
    '''
    # lis = [['k', ['qwe', 20, {'k1': ['tt', 3, '1']}, 89], 'ab']]    #1).
    
    # def edit_value(lis_i, old_v, new_v):
    #     for ind,item in enumerate(lis_i):
    #         if type(item) is list:
    #             edit_value(item, old_v, new_v)
    #         elif type(item) is dict:
    #             for v in item:
    #                 edit_value(item[v], old_v, new_v)
    #         else:
    #             if item == old_v:
    #                 lis_i[ind] = new_v
    #                 break
    # edit_value(lis, 3, '100')
    # print(lis)
    
    # lis[0][1][2]['k1'][0] = "TT"
    # lis[0][1][2]['k1'][0] = lis[0][1][2]['k1'][0].upper()
    # print(lis)
    
    # lis[0][1][2]['k1'][1] = "100" #2).
    # print(lis)
    # lis[0][1][2]['k1'].remove(3)
    # lis[0][1][2]['k1'].insert(1, '100')
    # print(lis)
    
    # lis[0][1][2]['k1'][2] = 101   #3).
    # print(lis)
    # lis[0][1][2]['k1'].remove('1')
    # lis[0][1][2]['k1'].insert(2, 101)
    # print(lis)
    
    '''
    11.按照要求实现如下功能:
    现有一个列表 li = [1,2,3, 'a', 'b', 4, 'c'],有一个字典(此字典是动态生成的,你并不知道他里面有多少键值对,所以用 dic =
    {}模拟此字典);现在需要完成这样的操作:如果该字典没有'k1'这个键,那就创建这个'k1'键和其对应的值(该键对应的值设置为空列
    表),并将列表 li 中的索引位为奇数对应的元素,添加到'k1'这个键对应的空列表中.如果该字典中有'k1'这个值,且k1对应的value
    是列表类型,那就将列表 li中的索引位为奇数对应的元素,添加到'k1'这个键对应的值中.
    '''
    # li = [1, 2, 3, 'a', 'b', 4, 'c']
    # dic = {}
    # dic.setdefault('k1', [])
    # for ind, item in enumerate(li):
    #     if ind % 2 == 1:
    #         dic['k1'].append(item)
    # print(dic)
    
    '''
    1.请用代码实现: 利用下划线将列表的每一个元素拼接成字符串, li = ["alex", "eric", "rain"]
    '''
    # li = ["alex", "eric", "rain"]
    # s = "_".join(li)
    # print(s)
    
    '''
    9.元素分类
    有如下值集合[11, 22, 33, 44, 55, 66, 77, 88, 99, 90],将所有大于66的值保存至字典的第一个key中,将小于66的值
    保存至第二个key的值中.
    即: {'k1':大于66的所有值, 'k2':小于66的所有值}
    '''
    # lst = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
    # dic = {'k1': [], 'k2': []}
    # for item in lst:
    #     if item > 66:
    #         dic['k1'].append(item)
    #     elif item < 66:
    #         dic['k2'].append(item)
    # print(dic)
    
    '''
    14. 利用for循环和range输出
    .for循环从大到小的输出1-100
    '''
    # for i in range(1, 101):
    #     print(i)
    
    '''
    .for循环从小到大输出100-1
    '''
    # for i in range(100, 0, -1):
    #     print(i)
    
    '''
    .while循环从大到小输出100-1
    '''
    # count = 100
    # while count >= 1:
    #     print(count)
    #     count -= 1
    
    '''
    .while循环从小到大输出1-100
    '''
    # count = 1
    # while count < 101:
    #     print(count)
    #     count += 1
    
    '''
    .在不改变列表数据结构的情况下找最大值li = [1, 3, 2, 7, 6, 23, 41, 243, 33, 85, 56]
    '''
    # li = [1, 3, 2, 7, 6, 23, 41, 243, 33, 85, 56]
    # Max = li[0]
    # for i in li:
    #     if Max < i:
    #         Max = i
    # print(Max)
    # print(li)
    
    '''
    .在不改变列表中数据排列结构的前提下,找出以下列表中最接近最大值和最小值的平均值的数 
    li = [-100, 1, 3, 2, 7, 6, 120, 121, 140, 23, 411, 99, 243, 33, 85, 56]
    '''
    # li = [-100, 1, 3, 2, 7, 6, 120, 121, 140, 23, 411, 99, 243, 33, 85, 56]
    # #最大值和最小值
    # Max = li[0]
    # Min = li[0]
    # for i in li:
    #     if Max < i:
    #         Max = i
    #     if Min > i:
    #         Min = i
    #
    # #最大数和最小数的平均值
    # Average = (Max + Min)/2
    # Min_v = li[0]
    # for i in li:
    #     if abs(Average - i) < abs(Average - Min_v):
    #         Min_v = i
    # print(Min_v)
    
    '''
    下面是一种比较好理解的方式
    获取每个元素和平均值相减,由差值取绝对值组成的列表
    '''
    # new_list = []
    # for i in li:
    #     new_list.append(abs(i - Average))
    #
    # #获取最小值和最小值的索引
    # min_v = new_list[0]
    # min_ind = 0
    # for k, v in enumerate(new_list):
    #     if min_v > v:
    #         min_v = v
    #         min_ind = k
    # print(li[min_ind])
    
    '''
    .利用for循环和range输出9*9乘法表
    '''
    # for i in range(1, 10):
    #     s = ""
    #     for j in range(1, i+1):
    #         s += "%d*%d=%d " % (j, i, i*j)
    #     print(s)
    
    '''
    .求100以内的素数和.(编程题)
    '''
    # Sum = 0
    # for i in range(2, 100):
    #     for j in range(2, i):
    #         if i % j == 0:
    #             break
    #     else:
    #         # print(i)
    #         Sum += i
    # print(Sum)
  • 相关阅读:
    微服务之集成(四)
    后缀数组
    HDU-6514 Monitor(二维前缀和+差分)
    前缀和、二维前缀和与差分
    2019年icpc上海网络赛 B Light bulbs (分块、差分)
    树状数组
    2019ICPC 上海网络赛 L. Digit sum(二维树状数组+区间求和)
    [USACO09MAR]向右看齐Look Up(单调栈、在线处理)
    Pay Back(模拟)
    [USACO09MAR]Moon哞哞叫Moon Mooing(模拟)
  • 原文地址:https://www.cnblogs.com/lilyxiaoyy/p/10685143.html
Copyright © 2011-2022 走看看