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)

 

posted @ 2018-10-24 18:48  Isabelle-古灵精  阅读(151)  评论(0编辑  收藏  举报