zoukankan      html  css  js  c++  java
  • 07 练习题:基础类型及转化、编码

    # 1. 看代码写结果
    # v1 = [1,2,3,4,5]
    # v2 = [v1,v1,v1]
    # v1.append(6)
    # print(v1)
    # print(v2)
    # result:
    # [1, 2, 3, 4, 5, 6]
    # [[1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6]]
    
    
    # 2. 看代码写结果
    # v1 = [1,2,3,4,5]
    # v2 = [v1,v1,v1]
    # v2[1][0] = 111
    # v2[2][0] = 222
    # print(v1)
    # print(v2)
    # result
    # [222, 2, 3, 4, 5]
    # [[222, 2, 3, 4, 5], [222, 2, 3, 4, 5], [222, 2, 3, 4, 5]]
    
    
    # 3. 看代码写结果,并解释每一步的流程。
    # v1 = [1,2,3,4,5,6,7,8,9]
    # v2 = {}
    # for item in v1:
    #     if item < 6:
    #         continue
    #     elif 'k1' in v2:
    #         v2['k1'].append(item)
    #     else:
    #         v2['k1'] = [item]
    # print(v2)
    # result: {'k1': [6, 7, 8, 9]}
    
    
    # 4. 简述深浅拷贝?
    # 浅拷贝:仅仅拷贝了最外层的容器数据类型,而容器内部的容器再次发生改变仍然会影响拷贝数据。
    # 深拷贝:将所有可变化数据类型都拷贝了地址不同的一份新的,容器内部的可变数据类型改变不会影响另一个数据。
    
    
    # 5.看代码写结果
    # import copy
    # v1 = "alex"
    # v2 = copy.copy(v1)
    # v3 = copy.deepcopy(v1)
    # print(v1 is v2)
    # print(v1 is v3)
    # result:
    # True
    # True
    
    
    # 6.看代码写结果
    # import copy
    # v1 = [1,2,3,4,5]
    # v2 = copy.copy(v1)
    # v3 = copy.deepcopy(v1)
    # print(v1 is v2)
    # print(v1 is v3)
    # result:
    # False
    # False
    
    
    # 7. 看代码写结果
    # import copy
    # v1 = [1,2,3,4,5]
    # v2 = copy.copy(v1)
    # v3 = copy.deepcopy(v1)
    # print(v1[0] is v2[0])
    # print(v1[0] is v3[0])
    # print(v2[0] is v3[0])
    # result:
    # True
    # True
    # True
    
    
    # 8. 看代码写结果
    # import copy
    # v1 = [1,2,3,4,[11,22]]
    # v2 = copy.copy(v1)
    # v3 = copy.deepcopy(v1)
    # print(v1[-1] is v2[-1])
    # print(v1[-1] is v3[-1])
    # print(v2[-1] is v3[-1])
    # result:
    # True
    # False
    # False
    
    
    # 9. 看代码写结果
    # import copy
    # v1 = [1,2,3,{"name":'太白',"numbers":[7,77,88]},4,5]
    # v2 = copy.copy(v1)
    # print(v1 is v2)
    # print(v1[0] is v2[0])
    # print(v1[3] is v2[3])
    # print(v1[3]['name'] is v2[3]['name'])
    # print(v1[3]['numbers'] is v2[3]['numbers'])
    # print(v1[3]['numbers'][1] is v2[3]['numbers'][1])
    # result:
    # False
    # True
    # True
    # True
    # True
    # True
    
    
    # 10.看代码写结果
    # import copy
    # v1 = [1, 2, 3, {"name": '太白', "numbers": [7, 77, 88]}, 4, 5]
    # v2 = copy.deepcopy(v1)
    # print(v1 is v2)
    # print(v1[0] is v2[0])
    # print(v1[3] is v2[3])
    # print(v1[3]['name'] is v2[3]['name'])
    # print(v1[3]['numbers'] is v2[3]['numbers'])
    # print(v1[3]['numbers'][1] is v2[3]['numbers'][1])
    # result:
    # False
    # True
    # False
    # True
    # False
    # True
    
    
    # 11. 请说出下面a,b,c三个变量的数据类型。
    # a = ('太白金星')                             # 字符串 string
    # b = (1,)                                    # 元组 tuple
    # c = ({'name': 'barry'})                     # 字典 dict
    
    
    # 12. 按照需求为列表排序:
    # l1 = [1, 3, 6, 7, 9, 8, 5, 4, 2]
    # 从大到小排序
    # 从小到大排序
    # 反转l1列表
    l1 = [1, 3, 6, 7, 9, 8, 5, 4, 2]
    l1.sort(reverse= True)
    print(l1)
    l1.sort()
    print(l1)
    l1.reverse()
    print(l1)
    
    
    # 13. 利用python代码构建一个这样的列表(升级题):
    # [['_','_','_'],['_','_','_'],['_','_','_']]
    print([['_'] * 3] * 3)
    
    
    # 14. 看代码写结果:
    # l1 = [1,2,]
    # l1 += [3,4]
    # print(l1)
    # result:
    # [1, 2, 3, 4]
    
    
    # 15. 看代码写结果:
    # dic = dict.fromkeys('abc',[])
    # dic['a'].append(666)
    # dic['b'].append(111)
    # print(dic)
    # result:
    # {'a': [666, 111], 'b': [666, 111], 'c': [666, 111]}
    
    
    # 16.
    # l1 = [11, 22, 33, 44, 55],请把索引为奇数对应的元素删除(不能一个一个删除,此l1只是举个例子,里面的元素不定)
    l1 = [11, 22, 33, 44, 55]
    del l1[1::2]
    print(l1)
    
    
    # 17.
    # dic = {'k1':'太白','k2':'barry','k3': '白白', 'age': 18} 请将字典中所有键带k元素的键值对删除.
    dic = {'k1':'太白','k2':'barry','k3': '白白', 'age': 18}
    dic_keys = list(dic.keys())
    for key in dic_keys:
        if 'k' in key:
            dic.pop(key)
    print(dic)
    
    
    # 18. bytes数据类型是python的基础数据类型,bytes类型存在的意义是什么?
    # 作为唯一的非Unicode编码基础数据类型,肩负起将Unicode编码转化为其他编码方式的任务来时实现存储和传输的工作。
    
    
    # 19.列举bytes类型与str类型的三个不同点?
    # 1) 编码方式不同:一个为Unicode,一个为非Unicode。
    # 2) 组成基本单位不同:一个以字符为基本单位,一个以字节为基本单位。
    # 3) 用途不同:一个用于存储少量的数据,一个用于传输和文件保存。
    # 4) 表现形式不同:一个是'a'、'字符'形式,一个是b'a'、b'xe5xadx97xe7xacxa6'形式。
    
    
    # 20. 完成下列需求:
    # s1 = '太白金星'
    # 将s1转换成utf-8的bytes类型。
    # 将s1转化成gbk的bytes类型。
    # b = b'xe5xa4xaaxe7x99xbdxe6x9cx80xe5xb8x85'
    # b为utf-8的bytes类型,请转换成gbk的bytes类型。
    s1 = '太白金星'
    s2 = s1.encode('utf-8')                        # 将s1转换成utf-8的bytes类型
    print(s2)
    s3 = s1.encode('gbk')                          # 将s1转化成gbk的bytes类型
    print(s3)
    b = b'xe5xa4xaaxe7x99xbdxe6x9cx80xe5xb8x85'
    b = b.decode('utf-8')                          # utf-8 -> Unicode
    b = b.encode('gbk')                            # Unicode -> gbk
    print(b)
    
    
    # 21. 用户输入一个数字,判断一个数是否是水仙花数。
    # 水仙花数是一个三位数, 三位数的每一位的三次方的和还等于这个数. 那这个数就是一个水仙花数,
    # 例如: 153 =1**3 + 5**3 + 3**3
    d = input('pls input:').strip()
    if d.isdecimal() and len(d) == 3:
        if int(d[0]) ** 3 + int(d[1]) ** 3 + int(d[2]) ** 3 == int(d):
            print('{}是水仙花数'.format(d))
        else:
            print('{}不是水仙花数'.format(d))
    else:
        print('input error.')
    
    
    # 22. 把列表中所有姓周的⼈的信息删掉(此题有坑, 请慎重):
    # lst = ['周⽼⼆', '周星星', '麻花藤', '周扒⽪']
    # 结果: lst = ['麻花藤']
    lst = ['周⽼⼆', '周星星', '麻花藤', '周扒⽪']
    for i in range(len(lst)-1,-1,-1):
        if '周' in lst[i]:
            lst.pop(i)
    print(lst)
    
    
    # 23. 车牌区域划分, 现给出以下车牌. 根据车牌的信息, 分析出各省的车牌持有量. (选做题)
    # cars = ['鲁A32444','鲁B12333','京B8989M','⿊C49678','⿊C46555','沪 B25041'.....]
    # locals = {'沪':'上海', '⿊':'⿊⻰江', '鲁':'⼭东', '鄂':'湖北', '湘':'湖南'.....}
    # 结果: {'⿊⻰江':2, '⼭东': 1, '北京': 1}
    cars = ['鲁A32444','鲁B12333','京B8989M','⿊C49678','⿊C46555','沪 B25041']
    locals = {'沪':'上海', '⿊':'⿊⻰江', '鲁':'⼭东', '鄂':'湖北', '湘':'湖南', '京':'北京'}
    # 方法一:
    total = {}
    for car in cars:
        if total.get(locals[car[0]]) == None:
            total.setdefault(locals[car[0]],1)
        else:
            total[locals[car[0]]] += 1
    print(total)
    # 方法二:
    dic = {}
    for i in cars:
        dic[locals[i[0]]] = dic.get(locals[i[0], 0], 1)
    print(dic)
    
  • 相关阅读:
    Redis过期key是怎么样清理的?----互联网大厂面试题
    Docker容器引擎使用教程
    区块链算法
    MYSQL 常用语句与函数命令
    漏洞利用:验证绕过,XSS利用,Cookic盗用,文件上传
    小白网工入行要具备哪些基本技能?
    VMware中乌班图安装VMtools步骤
    防火墙技术原理-思维导图
    JAVA学习第一课-手工笔记
    DOS(磁盘操作系统)基本命令-思维导图
  • 原文地址:https://www.cnblogs.com/raygor/p/13245738.html
Copyright © 2011-2022 走看看