• python 小数据池 is和 == 编码解码


    ########################总结#########################

    今日主要内容
    1. 小数据池, id()
    小数据池针对的是: int, str, bool
    在py文件中几乎所有的字符串都会缓存.
    id() 查看变量的内存地址
    2. is和==的区别

    # s1 = "abc" # 内存中是没有"abc", 创建一个新的 0.0001
    # s2 = "abc" # 内存中是已经有了"abc", 直接把abc拿来用 0.0000001
    # print(id(s1), id(s2)) # 31096032 31096032
    
    # lst1 = [1,2,3]
    # lst2 = [1,2,3]
    # # 列表没有小数据池
    # print(id(lst1), id(lst2)) # 166167560 166126408
    # print(lst1 == lst2) # True
    # print(lst1 is lst2) # False

    is 比较的是内存地址
    == 比较的是内容
    当两个变量指向同一个对象的时候. is是True, ==也是True

    3. 再谈编码
    回顾:
    1. ascii. 有: 数字, 字母, 特殊字符. 8bit 1byte 128 最前面是0
    2. gbk. 包含: ascii, 中文(主要), 日文, 韩文, 繁体文字. 16bit, 2byte.
    3. unicode. 包含gbk,ascii,big5... 32bit, 4byte
    4. utf-8. 可变长度的unicode.
    1. 英文: 8bit,1byte
    2. 欧洲文字: 16bit 2byte
    3. 中文: 24bit 3byte
    不同的编码之间不能随意转换. 中国人gbk和德国人utf-8骂 想要沟通必须通过英文(unicode)(媒介)

    在python3中. 默认的编码是unicode,我们的字符串就是unicode
    在python2中. 默认的编码是ASCII. Cpython.c语言的默认编码是ASCII

    unicode弊端:在存储和传输的时候. 是很浪费的
    在存储和传输的时候不能直接使用unicode. 必须要对字符串进行编码. 编码成bytes类型
    bytes: 字节形式的字符串

    1. encode(编码格式) 编码    gbk utf-8
    2. decode(编码格式) 解码    

    字符串转换为bytes

    s = '中国'
    s1 = s.encode('utf-8')
    print(s1)

    执行输出:

    b'xe4xb8xadxe5x9bxbd' #一个 表示一位,输出,可以看出占用了6位

    转换为gbk

    s = 'hello girl'
    s1 = s.encode('gbk')
    print(s1)

    执行输出:

    b'hello girl'

    bytes转换为str

    s1 = b'xe4xb8xadxe5x9bxbd'
    s2 = s1.decode(encoding='utf-8')
    print(s2)

    执行输出:

    中国

    #############################作业########################

     1,老男孩好声音选秀秀赛评委在打分的时候呢, 可以进行输入.假设,

    老男孩有10个评委.让10个评委进行打分, 要求, 分数必须大于5分, 小于10分.
    # pingwei = ['alex', 'wusir', '麻花藤', '东风扇','西风扇','宝宝','太白','日天','女神','老弟']
    # list=[]
    # number=0
    # while number < 10:#不确定输入次数 用while
    #     content=int(input(f'请第{number+1}位{pingwei[number]}评委输入打分:'))
    #     if content > 5 and content <10:
    #         print(f"{pingwei[number]}评委的分数是:{content}")
    #         list.append(content)
    #     else:
    #         print('请按要求输入分数')
    #         number -= 1
    #     number += 1
    # print(f'10位评委的得分情况:{list}')
    
    # lst=[]
    # index=0
    # while index<len(pingwei):
    #     content=input('请%s评委打分:' % pingwei[index])
    #     if content.isdigit():
    #         fen=int(content)
    #         if fen >= 5 and fen <= 10:
    #             lst.append(fen)
    #             index+=1
    #         else:
    #             print("对不起,你的分数有问题,请重新输入")
    #     else:
    #         print('输入的问题,请重新输入')
    # print(lst)
    # 2. 念数字.  给出一个字典. 在字典中标识出每个数字的发音. 包括相关符号. 然后由用户输入一个数字. 让程序读出相对应的发音(不需要语音输出. 单纯的打印即可)
    
    
    
    

    dic = {
    '-':'fu',
    '0':'ling',
    '1':'yi',
    '2':'er',
    '3':'san',
    '4':'si',
    '5':'wu',
    '6':'liu',
    '7':'qi',
    '8':'ba',
    '9':'jiu',
    '.':'dian'
    }

    
    

    content = input("请输入数字:") # 123
    # 获取到字符串中的每一个字符

    for c in content:
    print(dic[c], end=" ")

    #3. 车牌区域划分,现给出以下车牌.根据车牌的信息,分析出各省的车牌持有量.
    
    
    cars = ['鲁A32444','鲁B12333','京B8989M','黑C46555','沪B25041']
    locals = {'':'上海','':'黑龙江','':'山东','':'湖北','':'湖南'}
    dic={}
    for i in cars:
    jianchen=i[0]#拿到城市首字母
    chengshi=locals[jianchen]#去找对应的城市
    if dic.get(chengshi):#判断新字典里面有没有城市
    dic[chengshi]+=1 #如果有 就dic[城市]=dic[城市]+1
    else:
    dic[chengshi]=1 #如果新字典里面没有城市就等于1
    print(dic)
    
    
    5.干掉主播.现有如下主播收益信息, 按照要求, 完成相应操作:
    zhubo = {'卢本伟': 122000, '冯提莫': 189999, '金老板': 99999, '吴老板': 25000000, 'alex': 126}
    1.计算各位主播收益的平均值.
    2.干掉收益小于平均值的主播.
    3.干掉卢本伟.
    
    
    zhubo = {'卢本伟': 122000, '冯提莫': 189999, '金老板': 99999, '吴老板': 25000000, 'alex': 126}
    # 1.计算各位主播收益的平均值.
    # 2.干掉收益小于平均值的主播.
    # 3.干掉卢本伟.
    sum =0
    for i in zhubo.values():
        sum=sum+i
        avg=sum/len(zhubo)
    
    lis=[]
    for k,v in zhubo.items():
        if v < avg:
            lis.append(k)
    print(lis)
    
    # for el in lis:
    #     zhubo.pop(el)#for 新list 开始删除字典的可key
    # print(zhubo)
    
    # zhubo.pop("卢本伟")
    # print(zhubo)
    
    
    不怕大牛比自己牛,就怕大牛比自己更努力
  • 相关阅读:
    基础练习 龟兔赛跑预测
    SQL查询
    通讯录管理系统
    信号分解
    开源框架 openFrameworks
    开博了
    AES加密原理和AOE工程实践
    一文读懂AOE到底是什么!
    AoE 搭档 TensorFlow Lite ,让终端侧 AI 开发变得更加简单。
    AOE工程实践-银行卡OCR里的图像处理
  • 原文地址:https://www.cnblogs.com/zaizai1573/p/10063015.html
Copyright © 2020-2023  润新知