• pythonday05数据类型(三)


    ---恢复内容开始---

    今日内容

    1.字典

    2.强制转换

    3.习题讲解


     1.字典

    帮助用户去表示一个事物的信息(事物是有多个属性)。

    info = {"name":'刘伟达','age':18,'gender':'','hobby':'同桌'} # 键值
    
    # 请输出:我今天点%s,他的年龄是%s,性别是%s,他喜欢他的%s;

    基本格式

    data = {键:值,键:值,键:值,键:值,键:值,键:值,}
    # 练习题
    userinfo = {'usenrame':'alex','password':"oldboy"}
    
    user = input('请输入用户:')
    pwd = input('请输入密码:')
    
    if userinfo['username'] == user and userinfo['password'] == pwd:
        print('登陆成功')
    else:
        print('用户名或密码错误')
    • 独有功能
    info = {"name":'刘伟达','age':18,'gender':'','hobby':'同桌'}

           keys,获取字典中所有的键。['name','age','gender','hobby']

    # for item in info.keys():
    #     print(item)

           values,获取字典中所有的值。 ['刘伟达','18','男','同桌']

    # for item in info.values():
    #     print(item)

          items,获取字典中的所有键值对。

    # for v1,v2 in info.items():
    #     print(v1,v2)

          get

    info = {'k1':'v1','k2':'v2'}
    
    # v1 = info['k1']
    # v2 = info.get('k1') # None就是Python中的空
    # v3 = info.get('k1',666)
    # print(v2)
    
    # None数据类型,改类型表示空(无任何功能,专门用于提供空值)

          pop

    info = {'k1':'v1','k2':'v2'}
    result = info.pop('k2')
    print(info,result)
    
    del info['k1']

          update

    info = {'k1':'v1','k2':'v2'}
    
    # 不存在,则添加/存在,则更新
    info.update({'k3':'v3','k4':'v4','k2':666})
    print(info)
    • 公共功能

           len

    info = {"name":'刘伟达','age':18,'gender':'','hobby':'同桌'}
    print(len(info))

           索引

    info = {"name":'刘伟达','age':18,'gender':'','hobby':'同桌'}
    info['name']
    info['age']

         切片(无)

         步长(无)

        修改(存在就修改/不存在就增加)

    # 改值
    info = {"name":'刘伟达','age':18,'gender':'','hobby':'同桌'}
    info['age'] = 19
    print(info)
    
    # 改键
    # 删除后再增加
    del info['hobby']
    info['xxxxx'] = 'x1'

           删除

    info = {"name":'刘伟达','age':18,'gender':'','hobby':'同桌'}
    
    del info['name']
    print(info)

    2.强制转换

    int

    • int('字符串') 【重要】
    • int(布尔值)

    bool

    • bool(整数) -> bool(1)/.. -> bool(0)

    • bool(字符串) -> bool('xx') --> bool("")

    • bool(列表) -> bool([]) --> bool([])

    • bool(元组) -> bool(()) --> bool(空元组)

      v1 = bool(0)
      v2 = bool("")
      v3 = bool([])
      v4 = bool(())
      print(v1,v2,v3,v4) # False

    str

    • str(999) # "999"

    • str(True) # "True"

    • str(["唐开发",'李忠伟']) # "["唐开发",'李忠伟']" --> v2 = "".join(["唐开发",'李忠伟'])

    • str(["唐开发",'李忠伟'])

    list

    • list("asdfadfasfdadfasfd")
    v1 = list("asdfadfasfdadfasfd")
    print(v1)

    • list( (11,22,33,44,) )
    v1 = list( (11,22,33,44,) )
    print(v1)

    tuple

    • tuple('adfadfasdfasdfasdfafd')
      v1 = tuple('adfadfasdfasdfasdfafd')
      print(v1)
    • tuple([11,22,33,44])
      v1 = tuple([11,22,33,44])
      print(v1)

    总结

           常见的类型转换

    # 字符串转数字

    # 数字转字符串

    # 列表转元组

    # 元组转列表

    # 其他转bool时,只有:0 “”  []  ()

     3.练习题

    nums = [11,22,33,44]
    for i in range(0,len(nums)):
        nums[i] = str(nums[i])
    resutl = '_'.join(nums)
    print(resutl)
    
    # 1. "".jon([元素必须是字符串,元素必须是字符串,])
    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    """"""
    
    # 1. 简述解释性语言和编译型语言的区别?
    
    # 2. 列举你了解的Python的数据类型?
    """
    字符串:str
    整型:int
    布尔值:bool
    列表:list
    元组:tuple
    """
    # 3. 写代码,有如下列表,按照要求实现每一个功能。
       # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
    #    - 计算列表的长度并输出  len(li)
    #    - 请通过步长获取索引为偶数的所有值,并打印出获取后的列表  li[::2]
    #    - 列表中追加元素"seven",并输出添加后的列表
            # 错误
            # result = li.append('seven')
            # print(result)
            # 正确
            # li.append('seven')
            # print(li)
    #    - 请在列表的第1个位置插入元素"Tony",并输出添加后的列表
    #         li.insert(0,'tony')
    #    - 请修改列表第2个位置的元素为"Kelly",并输出修改后的列表
    #             li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
    #             li[1] = 'Kelly'
    #    - 请将列表的第3个位置的值改成 "太白",并输出修改后的列表
    #    - 请将列表 l2=[1,"a",3,4,"heart"] 的每一个元素追加到列表li中,并输出添加后的列表
    #             li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
    #             l2=[1,"a",3,4,"heart"]
    #             for item in l2:
    #                 li.append(item)
    #             print(li)
    
                  # li.extend(l2)
                  # print(li)
    #    - 请将字符串 s = "qwert"的每一个元素添加到列表li中,一行代码实现,不允许循环添加。
    # 循环实现
    # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
    # s = "qwert"
    # for char in s:
    #     li.append(char)
    # 使用方法直接实现
    # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
    # s = "qwert"
    # li.extend(s)
    # print(li)
    
    #    - 请删除列表中的元素"ritian",并输出添加后的列表
    # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
    # li.remove('ritian') # 根据值删除,不在则报错。
    
    #    - 请删除列表中的第2个元素,并输出删除元素后的列表
    # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
    # del li[2] # 仅仅是删除
    
    # deleted = li.pop(2) # 在列表中删除,并将删除的此数据赋值给deleted
    # print(li)
    # print(deleted)
    
    
    #    - 请删除列表中的第2至第4个元素,并输出删除元素后的列表
    # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
    #
    # del li[1:4]
    # print(li)
    
    """
    第三题总结:
        - extend
            # 1. 有列表 users = ['李忠伟','堂开发']  people = ['李鹏','张思达']
                    users.extend(people) # users中增加
                    people.extend(users) # people中增加
            # 2. 有列表 users = ['李忠伟','堂开发']  people = ('李鹏','张思达')
                    users.extend(people) # users中增加
                    people.extend(users)  # 只有列表有extend功能,元组是没有的。
        - pop和del的区别
                li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
                del li[2] # 仅仅是删除
                
                deleted = li.pop(2) # 在列表中删除,并将删除的此数据赋值给deleted
                print(li)
                print(deleted)
        - 删除 li[1:8]
    """
    
    
    # 4. 请用三种方法实现字符串反转 name = "小黑半夜三点在被窝玩愤怒的小鸟"(步长、while、for)
    # 方式一:
    # name = "小黑半夜三点在被窝玩愤怒的小鸟"
    # value = name[::-1]
    
    # 方式二:
    # name = "小黑半夜三点在被窝玩愤怒的小鸟"
    # value = ""
    # index = len(name) - 1 # 14
    # while index >=0:
    #     char = name[index]
    #     value = value + char
    #     index = index - 1
    # print(value)
    
    # 方式三:
    # name = "小黑半夜三点在被窝玩愤怒的小鸟"
    # index = 14
    # value = ""
    # for item in name:
    #     value += name[index]
    #     index -= 1
    # print(value)
    
    # 方式四:
    # range(0,10,1)   -> [0,1,2,3,4...9]
    # range(9,-1,-1)  -> [9,8,7.......0]
    # name = "小黑半夜三点在被窝玩愤怒的小鸟"
    # name_len = len(name) - 1
    # value = ""
    # for index in range(name_len,-1,-1):
    #     value += name[index]
    # print(value)
    
    # 练习:打印:0 ~ 100之间的偶数。
    # for i in range(0,101):
    #     if i % 2 == 0:
    #         print(i)
    
    # for i in range(0,101,2):
    #     print(i)
    
    # 练习:goods = ['汽车','飞机','大炮']
    # goods = ['汽车','飞机','大炮']
    #
    # for i in range(0,len(goods)):
    #     print(i,goods[i])
    # num = input('请输入要选择的商品序号:')
    # num = int(num)
    #
    # text = "您选择的是:%s" %(goods[num],)
    # print(text)
    
    # 练习:goods = ['汽车','飞机','大炮']
    # goods = ['汽车','飞机','大炮']
    #
    # for i in range(0,len(goods)):
    #     print(i+1,goods[i])
    # num = input('请输入要选择的商品序号:')
    # num = int(num) - 1
    # text = "您选择的是:%s" %(goods[num],)
    # print(text)
    
    # 5. 写代码,有如下列表,利用切片实现每一个功能
    """
    # 
    #    ```python
    #    li = [1, 3, 2, "a", 4, "b", 5,"c"]
    #    ```
    # 
    #    - 通过对li列表的切片形成新的列表 [1,3,2]
    #    - 通过对li列表的切片形成新的列表 ["a",4,"b"] 
    #    - 通过对li列表的切片形成新的列表  [1,2,4,5]
    #    - 通过对li列表的切片形成新的列表 [3,"a","b"]      li[1:-1:2]
    #    - 通过对li列表的切片形成新的列表 [3,"a","b","c"]  li[1::2]
    #    - 通过对li列表的切片形成新的列表  ["c"]
    #    - 通过对li列表的切片形成新的列表 ["b","a",3]
    """
    
    # 6. 请用代码实现循环输出元素和值:users = ["武沛齐","景女神","肖大侠"] ,如:
    """
       ```python
       0 武沛齐
       1 景女神
       2 肖大侠
       ```
    """
    # 7. 请用代码实现循环输出元素和值:users = ["武沛齐","景女神","肖大侠"] ,如:
    """
       ```python
       1 武沛齐
       2 景女神
       3 肖大侠
       ```
    """
    # 8. 写代码,有如下列表,按照要求实现每一个功能。
    """
       ```python
       lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
       ```
       - 将列表lis中的"k"变成大写,并打印列表。
            lis[2] = "K"
            lis[2] = lis[2].upper()
            
            lis[3][0] = lis[3][0].upper()
       - 将列表中的数字3变成字符串"100"
            li[1] = '100'
       - 将列表中的字符串"tt"变成数字 101
            li[3][2][1][0] = 101
       - 在 "qwe"前面插入字符串:"火车头"
            li[3].insert(0,'火车头')
    """
    
    
    # 9. 写代码实现以下功能
    """
       - 如有变量 googs = ['汽车','飞机','火箭'] 提示用户可供选择的商品:
    
         ```python
         0,汽车
         1,飞机
         2,火箭
         ```
    
       - 用户输入索引后,将指定商品的内容拼接打印,如:用户输入0,则打印 您选择的商品是汽车。
    """
    
    
    # 10. 请用代码实现
    """
        li = "alex"
        利用下划线将列表的每一个元素拼接成字符串"a_l_e_x"
        value = "_".join(li)
        
        # 练习一: users = ['贺鹏飞','朱海','城根'] 通过,将列表中的元素拼接:"贺鹏飞,珠海,城根"
        # users = ['贺鹏飞','朱海','城根']
        # users = ('贺鹏飞','朱海','城根')
        # result = ",".join(users)
        # print(result)
    
    """
    
    # 11. 利用for循环和range找出 0 ~ 100 以内所有的偶数,并追加到一个列表。
    """
    data_list = []
    for i in range(0,101):
        if i % 2 == 0:
            data_list.append(i)
            
            
    data_list = []
    for i in range(0,101,2):
        data_list.append(i)
    """
    # 12. 利用for循环和range 找出 0 ~ 50 以内能被3整除的数,并追加到一个列表。
    """
    data_list = []
    for i in range(0,51):
        if i % 3 == 0:
            data_list.append(i)
    print(data_list)
    """
    # 13. 利用for循环和range 找出 0 ~ 50 以内能被3整除的数,并插入到列表的第0个索引位置,最终结果如下:
    """
    data_list = []
    for i in range(0,51):
        if i % 3 == 0:
            data_list.insert(0,i)
    print(data_list)
    """
    
    
    # 14. 查找列表li中的元素,移除每个元素的空格,并找出以"a"开头,并添加到一个新列表中,最后循环打印这个新列表。
    """
        ```python
        li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", "  aqc"]
        ```
    """
    
    """
    li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", "  aqc"]
    data_list = []
    for item in li:
        item = item.strip()
        if item.startswith('a'):
            data_list.append(item)
    
    for item in data_list:
        print(item)
    """
    
    
    
    # 15. 判断是否可以实现,如果可以请写代码实现。
    """
        ```python
        li = ["alex",[11,22,(88,99,100,),33] "WuSir", ("ritian", "barry",), "wenzhou"]
        ```
        - 请将 "WuSir" 修改成 "武沛齐"
        - 请将 ("ritian", "barry",) 修改为 ['日天','日地']
        - 请将 88 修改为 87  
        - 请将 "wenzhou" 删除,然后再在列表第0个索引位置插入 "文周"
            del li[-1]
            li.insert(0,'文周')
        - 请将 "wenzhou" 删除,然后再在列表第0个索引位置插入 "wenzhou"
            deleted = li.pop()
            li.insert(0,deleted)
    """
    
    # 16. 面试题 & 书写规范
    """
    v1 = 1
    v2 = (1)
    v3 = (1,)
    print(type(v1),type(v2),type(v3))
    """
    # data = [(1),(2),(3)] # [1,2,3]
    
    
    # 17. 用户输入
    # content = input("请输入:") # 5 + 99+7+  2+ uu + 7y ...
    """
    total = 0
    content = "5 + 99+7+  2+ uu + 7y"
    num_list = content.split('+') # ["5  ",' 99',"7",'  2', ' uu '..]
    for item in num_list:
        item = item.strip()
        if item.isdigit():
            total += int(item)
    print(total)
    """
    View Code

    字典练习题

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    """"""
    # 1.请获取 "刘伟达"
    """
    info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'}
    v = info['name']
    print(v)
    """
    # 2. 请输出所有键
    """
    info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'}
    for i in info.keys():
        print(i)
    """
    
    # 3. 请输出所有键和值
    
    # v = "1+3"
    # a,b = v.split('+') # [1,3]
    # print(a,b)
    
    # a,b = (1,3,)
    # print(a,b)
    
    # info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'}
    # for a,b in info.items():
    #     print(a,b)
    
    # 3. 请输出所有键和值,并让用户输入 name/age/gender/hobby,根据用户输入输出对应的值。
    """
    info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'}
    for k,v in info.items():
        print(k,v)
    key = input('请输入键:') # "name"
    print(info[key]) # info["name"]
    """
    
    # 4. 给你一个空字典,请在空字典中添加数据: k1:1,k2:2,k3:3
    """
    info = {}
    info['k1'] = "1"
    info['k2'] = 2
    info['k3'] = 3
    print(info)
    """
    
    # 5. 给你一个空字典,请让用户输入:key,value,将输入的key和value添加到字典中。
    # info = {}
    # k = input('请输入key:')
    # v = input('请输入value:')
    # info[k] = v
    # print(info)
    # 6. 给你一个空字典,请一直让用户输入:key,value,将输入的key和value添加到字典中,直到用户输入 N ,则表示不再输入。
    """
    info = {}
    while True:
        k = input('请输入key:')
        if k == 'N':
            break
        v = input('请输入value:')
        info[k] = v
    print(info)
    """
    
    # 7. 请用代码实现
    """
        message = "k1|v1,k2|v2,k3|123......." # ,k3|123
        
        info = {'k1':'v1','k2':'v2','k3':'123'}
    
    info = {}
    message = "k1|v1,k2|v2,k3|123"
    for item in message.split(','): # ["k1|v1","k2|v2","k3|123"]
        v1,v2 = item.split('|')
        info[v1] = v2
    print(info)
    """
    
    # 8. 数据类型嵌套:int/bool/str/list/tuple/dict
    # li = [11,22,33,True,[11,2],(11,2,[11,22],33,),{'k1':'v1','k2':(11,22,3)}]
    """
    info = {
        'k1':'v1',
        'k2':True,
        'k3':1,
        'k4':(11,22,33),
        'k5':[11,22,33],
        'k6':{'kk':'vv'},
        1:{'kk':'vv'},
        False:{'kk':'vv'},
        # [11,2]:{'kk':'vv'}, # 不可哈希
        (11,2):{'kk':'vv'},
        # {'k1':'v2'}:{'kk':'vv'}, # 不可哈希
    }
    print(info)
    """
    # data = [1, 2, {'k1': 1, 'k2': 2, 'k3': (11, 22, 33), 'k4': [1, (12, 3, 4), 2]}, 93]
    # 获取3
    # v = data[2]['k4'][1][1]
    # print(v)
    # 在k4对应的列表第0个位置插入一个 9
    
    # data[2]['k4'].insert(0,9)
    # print(data)
    
    
    # 9. 创建出一个用户列表,然后让用户输入用户名和密码进行登陆。
    """
        user_list = [
            {'user':'alex','pwd':'123'},
            {'user':'oldboy','pwd':'123'},
            {'user':'lishaoqi','pwd':'1123'},
            {'user':'liqihang','pwd':'123'},
            {'user':'xxx','pwd':'123'}, # N
        ]
    
    """
    # 构建用户列表
    """
    user_list = []
    while True:
        u = input('请输入用户名:') # N
        if u == "N":
            break
        p = input('请输入密码:')
        # user_info = {}
        # user_info['user'] = u
        # user_info['pwd'] = p
        user_info = {'user':u,'pwd':p}
        user_list.append(user_info)
    """
    
    """
    user_list = [{'user': 'alex', 'pwd': '123'}, {'user': 'oldboy', 'pwd': '123'}, {'user': 'lishaoqi', 'pwd': '123'}]
    username = input('请输入用户名:') # oldboy
    password = input('请输入密码:') # 123
    message = "登陆失败"
    for item in user_list:
        if item['user'] == username and item['pwd'] == password:
            message = '登陆成功'
            break
    print(message)
    """
    
    
    # 10. 有序
    # 有序:元组/列表
    # 无序:字典(py3.6之后字典就是有序了)
    View Code
    v = {'k1':'v1','k2':'v2','k3':'v3'}
    
    # 默认按照键判断,即:判断x是否是字典的键。
    if 'x' in v:
        pass 
    
    # 请判断:k1 是否在其中?
    if 'k1' in v:
        pass
    # 请判断:v2 是否在其中?
    # 方式一:循环判断
    flag = '不存在'
    for v in v.values():
        if v == 'v2':
            flag = '存在'
    print(flag)
    # 方式二:
    if 'v2' in list(v.values()): # 强制转换成列表 ['v1','v2','v3']
           pass
    # 请判断:k2:v2 是否在其中?
    value = v.get('k2')
    if value == 'v2':
        print('存在')
    else:
        print('不存在')
    View Code

     

     

    ---恢复内容结束---

    今日内容

    1.字典

    2.强制转换

    3.习题讲解


     1.字典

    帮助用户去表示一个事物的信息(事物是有多个属性)。

    info = {"name":'刘伟达','age':18,'gender':'','hobby':'同桌'} # 键值
    
    # 请输出:我今天点%s,他的年龄是%s,性别是%s,他喜欢他的%s;

    基本格式

    data = {键:值,键:值,键:值,键:值,键:值,键:值,}
    # 练习题
    userinfo = {'usenrame':'alex','password':"oldboy"}
    
    user = input('请输入用户:')
    pwd = input('请输入密码:')
    
    if userinfo['username'] == user and userinfo['password'] == pwd:
        print('登陆成功')
    else:
        print('用户名或密码错误')
    • 独有功能
    info = {"name":'刘伟达','age':18,'gender':'','hobby':'同桌'}

           keys,获取字典中所有的键。['name','age','gender','hobby']

    # for item in info.keys():
    #     print(item)

           values,获取字典中所有的值。 ['刘伟达','18','男','同桌']

    # for item in info.values():
    #     print(item)

          items,获取字典中的所有键值对。

    # for v1,v2 in info.items():
    #     print(v1,v2)

          get

    info = {'k1':'v1','k2':'v2'}
    
    # v1 = info['k11111']
    # v2 = info.get('k1111') # None就是Python中的空
    # v3 = info.get('k1111',666)
    # print(v2)
    
    # None数据类型,改类型表示空(无任何功能,专门用于提供空值)

          pop

    info = {'k1':'v1','k2':'v2'}
    result = info.pop('k2')
    print(info,result)
    
    del info['k1']

          update

    info = {'k1':'v1','k2':'v2'}
    
    # 不存在,则添加/存在,则更新
    info.update({'k3':'v3','k4':'v4','k2':666})
    print(info)
    • 公共功能

           len

    info = {"name":'刘伟达','age':18,'gender':'','hobby':'同桌'}
    print(len(info))

           索引

    info = {"name":'刘伟达','age':18,'gender':'','hobby':'同桌'}
    info['name']
    info['age']

         切片(无)

         步长(无)

        修改(存在就修改/不存在就增加)

    # 改值
    info = {"name":'刘伟达','age':18,'gender':'','hobby':'同桌'}
    info['age'] = 19
    print(info)
    
    # 改键
    # 删除后再增加
    del info['hobby']
    info['xxxxx'] = 'x1'

           删除

    info = {"name":'刘伟达','age':18,'gender':'','hobby':'同桌'}
    
    del info['name']
    print(info)

    2.强制转换

    int

    • int('字符串') 【重要】
    • int(布尔值)

    bool

    • bool(整数) -> bool(1)/.. -> bool(0)

    • bool(字符串) -> bool('xx') --> bool("")

    • bool(列表) -> bool([]) --> bool([])

    • bool(元组) -> bool(()) --> bool(空元组)

      v1 = bool(0)
      v2 = bool("")
      v3 = bool([])
      v4 = bool(())
      print(v1,v2,v3,v4) # False

    str

    • str(999) # "999"

    • str(True) # "True"

    • str(["唐开发",'李忠伟']) # "["唐开发",'李忠伟']" --> v2 = "".join(["唐开发",'李忠伟'])

    • str(["唐开发",'李忠伟'])

    list

    • list("asdfadfasfdadfasfd")
    v1 = list("asdfadfasfdadfasfd")
    print(v1)

    • list( (11,22,33,44,) )
    v1 = list( (11,22,33,44,) )
    print(v1)

    tuple

    • tuple('adfadfasdfasdfasdfafd')
      v1 = tuple('adfadfasdfasdfasdfafd')
      print(v1)
    • tuple([11,22,33,44])
      v1 = tuple([11,22,33,44])
      print(v1)

    总结

           常见的类型转换

    # 字符串转数字

    # 数字转字符串

    # 列表转元组

    # 元组转列表

    # 其他转bool时,只有:0 “”  []  ()

     3.练习题

    nums = [11,22,33,44]
    for i in range(0,len(nums)):
        nums[i] = str(nums[i])
    resutl = '_'.join(nums)
    print(resutl)
    
    # 1. "".jon([元素必须是字符串,元素必须是字符串,])
    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    """"""
    
    # 1. 简述解释性语言和编译型语言的区别?
    
    # 2. 列举你了解的Python的数据类型?
    """
    字符串:str
    整型:int
    布尔值:bool
    列表:list
    元组:tuple
    """
    # 3. 写代码,有如下列表,按照要求实现每一个功能。
       # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
    #    - 计算列表的长度并输出  len(li)
    #    - 请通过步长获取索引为偶数的所有值,并打印出获取后的列表  li[::2]
    #    - 列表中追加元素"seven",并输出添加后的列表
            # 错误
            # result = li.append('seven')
            # print(result)
            # 正确
            # li.append('seven')
            # print(li)
    #    - 请在列表的第1个位置插入元素"Tony",并输出添加后的列表
    #         li.insert(0,'tony')
    #    - 请修改列表第2个位置的元素为"Kelly",并输出修改后的列表
    #             li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
    #             li[1] = 'Kelly'
    #    - 请将列表的第3个位置的值改成 "太白",并输出修改后的列表
    #    - 请将列表 l2=[1,"a",3,4,"heart"] 的每一个元素追加到列表li中,并输出添加后的列表
    #             li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
    #             l2=[1,"a",3,4,"heart"]
    #             for item in l2:
    #                 li.append(item)
    #             print(li)
    
                  # li.extend(l2)
                  # print(li)
    #    - 请将字符串 s = "qwert"的每一个元素添加到列表li中,一行代码实现,不允许循环添加。
    # 循环实现
    # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
    # s = "qwert"
    # for char in s:
    #     li.append(char)
    # 使用方法直接实现
    # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
    # s = "qwert"
    # li.extend(s)
    # print(li)
    
    #    - 请删除列表中的元素"ritian",并输出添加后的列表
    # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
    # li.remove('ritian') # 根据值删除,不在则报错。
    
    #    - 请删除列表中的第2个元素,并输出删除元素后的列表
    # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
    # del li[2] # 仅仅是删除
    
    # deleted = li.pop(2) # 在列表中删除,并将删除的此数据赋值给deleted
    # print(li)
    # print(deleted)
    
    
    #    - 请删除列表中的第2至第4个元素,并输出删除元素后的列表
    # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
    #
    # del li[1:4]
    # print(li)
    
    """
    第三题总结:
        - extend
            # 1. 有列表 users = ['李忠伟','堂开发']  people = ['李鹏','张思达']
                    users.extend(people) # users中增加
                    people.extend(users) # people中增加
            # 2. 有列表 users = ['李忠伟','堂开发']  people = ('李鹏','张思达')
                    users.extend(people) # users中增加
                    people.extend(users)  # 只有列表有extend功能,元组是没有的。
        - pop和del的区别
                li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
                del li[2] # 仅仅是删除
                
                deleted = li.pop(2) # 在列表中删除,并将删除的此数据赋值给deleted
                print(li)
                print(deleted)
        - 删除 li[1:8]
    """
    
    
    # 4. 请用三种方法实现字符串反转 name = "小黑半夜三点在被窝玩愤怒的小鸟"(步长、while、for)
    # 方式一:
    # name = "小黑半夜三点在被窝玩愤怒的小鸟"
    # value = name[::-1]
    
    # 方式二:
    # name = "小黑半夜三点在被窝玩愤怒的小鸟"
    # value = ""
    # index = len(name) - 1 # 14
    # while index >=0:
    #     char = name[index]
    #     value = value + char
    #     index = index - 1
    # print(value)
    
    # 方式三:
    # name = "小黑半夜三点在被窝玩愤怒的小鸟"
    # index = 14
    # value = ""
    # for item in name:
    #     value += name[index]
    #     index -= 1
    # print(value)
    
    # 方式四:
    # range(0,10,1)   -> [0,1,2,3,4...9]
    # range(9,-1,-1)  -> [9,8,7.......0]
    # name = "小黑半夜三点在被窝玩愤怒的小鸟"
    # name_len = len(name) - 1
    # value = ""
    # for index in range(name_len,-1,-1):
    #     value += name[index]
    # print(value)
    
    # 练习:打印:0 ~ 100之间的偶数。
    # for i in range(0,101):
    #     if i % 2 == 0:
    #         print(i)
    
    # for i in range(0,101,2):
    #     print(i)
    
    # 练习:goods = ['汽车','飞机','大炮']
    # goods = ['汽车','飞机','大炮']
    #
    # for i in range(0,len(goods)):
    #     print(i,goods[i])
    # num = input('请输入要选择的商品序号:')
    # num = int(num)
    #
    # text = "您选择的是:%s" %(goods[num],)
    # print(text)
    
    # 练习:goods = ['汽车','飞机','大炮']
    # goods = ['汽车','飞机','大炮']
    #
    # for i in range(0,len(goods)):
    #     print(i+1,goods[i])
    # num = input('请输入要选择的商品序号:')
    # num = int(num) - 1
    # text = "您选择的是:%s" %(goods[num],)
    # print(text)
    
    # 5. 写代码,有如下列表,利用切片实现每一个功能
    """
    # 
    #    ```python
    #    li = [1, 3, 2, "a", 4, "b", 5,"c"]
    #    ```
    # 
    #    - 通过对li列表的切片形成新的列表 [1,3,2]
    #    - 通过对li列表的切片形成新的列表 ["a",4,"b"] 
    #    - 通过对li列表的切片形成新的列表  [1,2,4,5]
    #    - 通过对li列表的切片形成新的列表 [3,"a","b"]      li[1:-1:2]
    #    - 通过对li列表的切片形成新的列表 [3,"a","b","c"]  li[1::2]
    #    - 通过对li列表的切片形成新的列表  ["c"]
    #    - 通过对li列表的切片形成新的列表 ["b","a",3]
    """
    
    # 6. 请用代码实现循环输出元素和值:users = ["武沛齐","景女神","肖大侠"] ,如:
    """
       ```python
       0 武沛齐
       1 景女神
       2 肖大侠
       ```
    """
    # 7. 请用代码实现循环输出元素和值:users = ["武沛齐","景女神","肖大侠"] ,如:
    """
       ```python
       1 武沛齐
       2 景女神
       3 肖大侠
       ```
    """
    # 8. 写代码,有如下列表,按照要求实现每一个功能。
    """
       ```python
       lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
       ```
       - 将列表lis中的"k"变成大写,并打印列表。
            lis[2] = "K"
            lis[2] = lis[2].upper()
            
            lis[3][0] = lis[3][0].upper()
       - 将列表中的数字3变成字符串"100"
            li[1] = '100'
       - 将列表中的字符串"tt"变成数字 101
            li[3][2][1][0] = 101
       - 在 "qwe"前面插入字符串:"火车头"
            li[3].insert(0,'火车头')
    """
    
    
    # 9. 写代码实现以下功能
    """
       - 如有变量 googs = ['汽车','飞机','火箭'] 提示用户可供选择的商品:
    
         ```python
         0,汽车
         1,飞机
         2,火箭
         ```
    
       - 用户输入索引后,将指定商品的内容拼接打印,如:用户输入0,则打印 您选择的商品是汽车。
    """
    
    
    # 10. 请用代码实现
    """
        li = "alex"
        利用下划线将列表的每一个元素拼接成字符串"a_l_e_x"
        value = "_".join(li)
        
        # 练习一: users = ['贺鹏飞','朱海','城根'] 通过,将列表中的元素拼接:"贺鹏飞,珠海,城根"
        # users = ['贺鹏飞','朱海','城根']
        # users = ('贺鹏飞','朱海','城根')
        # result = ",".join(users)
        # print(result)
    
    """
    
    # 11. 利用for循环和range找出 0 ~ 100 以内所有的偶数,并追加到一个列表。
    """
    data_list = []
    for i in range(0,101):
        if i % 2 == 0:
            data_list.append(i)
            
            
    data_list = []
    for i in range(0,101,2):
        data_list.append(i)
    """
    # 12. 利用for循环和range 找出 0 ~ 50 以内能被3整除的数,并追加到一个列表。
    """
    data_list = []
    for i in range(0,51):
        if i % 3 == 0:
            data_list.append(i)
    print(data_list)
    """
    # 13. 利用for循环和range 找出 0 ~ 50 以内能被3整除的数,并插入到列表的第0个索引位置,最终结果如下:
    """
    data_list = []
    for i in range(0,51):
        if i % 3 == 0:
            data_list.insert(0,i)
    print(data_list)
    """
    
    
    # 14. 查找列表li中的元素,移除每个元素的空格,并找出以"a"开头,并添加到一个新列表中,最后循环打印这个新列表。
    """
        ```python
        li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", "  aqc"]
        ```
    """
    
    """
    li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", "  aqc"]
    data_list = []
    for item in li:
        item = item.strip()
        if item.startswith('a'):
            data_list.append(item)
    
    for item in data_list:
        print(item)
    """
    
    
    
    # 15. 判断是否可以实现,如果可以请写代码实现。
    """
        ```python
        li = ["alex",[11,22,(88,99,100,),33] "WuSir", ("ritian", "barry",), "wenzhou"]
        ```
        - 请将 "WuSir" 修改成 "武沛齐"
        - 请将 ("ritian", "barry",) 修改为 ['日天','日地']
        - 请将 88 修改为 87  
        - 请将 "wenzhou" 删除,然后再在列表第0个索引位置插入 "文周"
            del li[-1]
            li.insert(0,'文周')
        - 请将 "wenzhou" 删除,然后再在列表第0个索引位置插入 "wenzhou"
            deleted = li.pop()
            li.insert(0,deleted)
    """
    
    # 16. 面试题 & 书写规范
    """
    v1 = 1
    v2 = (1)
    v3 = (1,)
    print(type(v1),type(v2),type(v3))
    """
    # data = [(1),(2),(3)] # [1,2,3]
    
    
    # 17. 用户输入
    # content = input("请输入:") # 5 + 99+7+  2+ uu + 7y ...
    """
    total = 0
    content = "5 + 99+7+  2+ uu + 7y"
    num_list = content.split('+') # ["5  ",' 99',"7",'  2', ' uu '..]
    for item in num_list:
        item = item.strip()
        if item.isdigit():
            total += int(item)
    print(total)
    """
    View Code

    字典练习题

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    """"""
    # 1.请获取 "刘伟达"
    """
    info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'}
    v = info['name']
    print(v)
    """
    # 2. 请输出所有键
    """
    info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'}
    for i in info.keys():
        print(i)
    """
    
    # 3. 请输出所有键和值
    
    # v = "1+3"
    # a,b = v.split('+') # [1,3]
    # print(a,b)
    
    # a,b = (1,3,)
    # print(a,b)
    
    # info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'}
    # for a,b in info.items():
    #     print(a,b)
    
    # 3. 请输出所有键和值,并让用户输入 name/age/gender/hobby,根据用户输入输出对应的值。
    """
    info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'}
    for k,v in info.items():
        print(k,v)
    key = input('请输入键:') # "name"
    print(info[key]) # info["name"]
    """
    
    # 4. 给你一个空字典,请在空字典中添加数据: k1:1,k2:2,k3:3
    """
    info = {}
    info['k1'] = "1"
    info['k2'] = 2
    info['k3'] = 3
    print(info)
    """
    
    # 5. 给你一个空字典,请让用户输入:key,value,将输入的key和value添加到字典中。
    # info = {}
    # k = input('请输入key:')
    # v = input('请输入value:')
    # info[k] = v
    # print(info)
    # 6. 给你一个空字典,请一直让用户输入:key,value,将输入的key和value添加到字典中,直到用户输入 N ,则表示不再输入。
    """
    info = {}
    while True:
        k = input('请输入key:')
        if k == 'N':
            break
        v = input('请输入value:')
        info[k] = v
    print(info)
    """
    
    # 7. 请用代码实现
    """
        message = "k1|v1,k2|v2,k3|123......." # ,k3|123
        
        info = {'k1':'v1','k2':'v2','k3':'123'}
    
    info = {}
    message = "k1|v1,k2|v2,k3|123"
    for item in message.split(','): # ["k1|v1","k2|v2","k3|123"]
        v1,v2 = item.split('|')
        info[v1] = v2
    print(info)
    """
    
    # 8. 数据类型嵌套:int/bool/str/list/tuple/dict
    # li = [11,22,33,True,[11,2],(11,2,[11,22],33,),{'k1':'v1','k2':(11,22,3)}]
    """
    info = {
        'k1':'v1',
        'k2':True,
        'k3':1,
        'k4':(11,22,33),
        'k5':[11,22,33],
        'k6':{'kk':'vv'},
        1:{'kk':'vv'},
        False:{'kk':'vv'},
        # [11,2]:{'kk':'vv'}, # 不可哈希
        (11,2):{'kk':'vv'},
        # {'k1':'v2'}:{'kk':'vv'}, # 不可哈希
    }
    print(info)
    """
    # data = [1, 2, {'k1': 1, 'k2': 2, 'k3': (11, 22, 33), 'k4': [1, (12, 3, 4), 2]}, 93]
    # 获取3
    # v = data[2]['k4'][1][1]
    # print(v)
    # 在k4对应的列表第0个位置插入一个 9
    
    # data[2]['k4'].insert(0,9)
    # print(data)
    
    
    # 9. 创建出一个用户列表,然后让用户输入用户名和密码进行登陆。
    """
        user_list = [
            {'user':'alex','pwd':'123'},
            {'user':'oldboy','pwd':'123'},
            {'user':'lishaoqi','pwd':'1123'},
            {'user':'liqihang','pwd':'123'},
            {'user':'xxx','pwd':'123'}, # N
        ]
    
    """
    # 构建用户列表
    """
    user_list = []
    while True:
        u = input('请输入用户名:') # N
        if u == "N":
            break
        p = input('请输入密码:')
        # user_info = {}
        # user_info['user'] = u
        # user_info['pwd'] = p
        user_info = {'user':u,'pwd':p}
        user_list.append(user_info)
    """
    
    """
    user_list = [{'user': 'alex', 'pwd': '123'}, {'user': 'oldboy', 'pwd': '123'}, {'user': 'lishaoqi', 'pwd': '123'}]
    username = input('请输入用户名:') # oldboy
    password = input('请输入密码:') # 123
    message = "登陆失败"
    for item in user_list:
        if item['user'] == username and item['pwd'] == password:
            message = '登陆成功'
            break
    print(message)
    """
    
    
    # 10. 有序
    # 有序:元组/列表
    # 无序:字典(py3.6之后字典就是有序了)
    View Code
    v = {'k1':'v1','k2':'v2','k3':'v3'}
    
    # 默认按照键判断,即:判断x是否是字典的键。
    if 'x' in v:
        pass 
    
    # 请判断:k1 是否在其中?
    if 'k1' in v:
        pass
    # 请判断:v2 是否在其中?
    # 方式一:循环判断
    flag = '不存在'
    for v in v.values():
        if v == 'v2':
            flag = '存在'
    print(flag)
    # 方式二:
    if 'v2' in list(v.values()): # 强制转换成列表 ['v1','v2','v3']
           pass
    # 请判断:k2:v2 是否在其中?
    value = v.get('k2')
    if value == 'v2':
        print('存在')
    else:
        print('不存在')
    View Code

     

     
  • 相关阅读:
    Linux 下防火墙端口操作命令
    showDoc 安装
    jeckins 编译成功,启动失败问题总结
    20212923 202120222 《网络攻防实践》第一次作业_实践一:网络攻防环境的搭建
    再次搭建程序集报错
    面试不会的别扯
    一些莫名奇妙的错误(有点伤心)
    关于端口封禁的一些事
    算法方法
    Django配置日志
  • 原文地址:https://www.cnblogs.com/tengteng0520/p/11233071.html
Copyright © 2020-2023  润新知