• 自学Python编程的第七天----------来自苦逼的转行人


    2019-09-17-23:09:48

    今天学的内容是有关小数据池的,学的有点懵逼,感觉越来越难学了,但是得坚持下去

    明天学习下一个课程时,感觉要跟不上,看来明天得先看好几遍今天的内容

    不然肯定会听的懵逼

    今天看见哔哩哔哩很多这样的视频,内容和我网上买的一样的,心塞啊!!!!!!!!!!!!

    今天的内容:

    一.重要知识点
    1. is 和 == 区别
    id()函数
    == 判断两边的值
    is 判断内存地址
    #小数据池只针对整数、字符串、布尔值.其他的数据类型不存在驻留机制
    2.当我们在控制台的时候,代码块与代码块之间的规则:
    1.数字: -5~256之向的整数会被缓存
    2.宇符串:
    长度小于等于1会默认缓存
    长度大于1,如果字符串中只有数字、字母、下换线缓存
    乘法得到的字符串:
    1.如果乘数是1. 和上面两个方案一致
    2.乘数不是1.最终长度不能超过20
    手动指定缓存 from sys import intern intern()制定缓存的内容
    3.布尔值
    3.py文件里, 一个代码块内部,只会缓存int, str, bool 也有自己的小数据池。 缓存的范围会比外面的代码块的数据池大
    1. 数字。都会缓存。运算的结果不缓存(-5~256 会缓存)
    2. 宇符串。默认的字符串都缓存,如果有乘法。 遵循上方的结论
    3. 布尔值,默认缓存

    回顾编码:
    1. ASCII: 英文, 特殊字符, 数字, 8bit, 1byte
    2. GBK: 中文 16bit, 2byte. 兼容ASCII
    3. unicode: 万国码, 32bit 4byte. 兼容ASCII
    4. UTF-8: 长度可变的unicode. 英文:8bit, 欧洲:16bit, 中文:24bit 3byte

    python2 只能用ASCII
    python3 有unicode, 默认的编码就是unicode
    内存里用的是unicode. 硬盘和网络传输用的是utf-8或者GBK

    2. encode() 编码. 获取到的是编码之后的结果. bytes
    3. decode() 解码. 把bytes编程我们熟悉的字符串

    二.错误总结
    1.字符串的错误
    li=[11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
    dict={}
    for el in li:
    if el<=66:
    if dict.get('k1')==None:
    dict['k1']=el #-->>这里是表示字符串(应该加上[])
    else:
    dict['k1'].append(el) #-->>字符串不可改变
    else:
    if dict.get('k2')==None:
    dict['k2']=el #-->>这里是表示字符串
    else:
    dict['k2'].append(el) #-->>字符串不可改变
    print(dict)
    #出现这个错误的原因是因为没有考虑到字符串是不可变的,没有连贯上以前学的内容,只以为今天的题目昨天的内容就可以解决
    解决方法:加上[],以后每输入一个命令行,要去考虑它是什么

    2.同上
    s="k:1|k1:2|k2:3|k3:4"
    lst=[]
    lst=s.split("|")
    # print(lst)
    dict={}
    for c in lst:
    # print(c)
    k,v=c.split(":") #-->>这里一开始自己做没有加上k,v
    dict[k]=int(v)
    print(dict)
    #还是一样没有考虑到字符串的不可变
    解决方法:重新回去再仔细看看前几天所学的内容,要学会连贯知识点
    觉得还可以的代码
    li=[11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
    dict={}
    for el in li:
        if el<=66:
            if dict.get('k1')==None:
                dict['k1']=[el]
            else:
                dict['k1'].append(el)
        else:
            if dict.get('k2')==None:
                dict['k2']=[el]
            else:
                dict['k2'].append(el)
    print(dict)
  • 相关阅读:
    C# 泛型
    EventHandler<TEventArgs>委托
    只能输入数字 ,只能有一位小数点。
    MVC过滤器 AuthorizeAttribute使用
    NuGet EntityFramework 常用命令
    Stride游戏引擎试毒
    Unity EditorWindow GUI裁剪
    unity2017自定义编译dll
    Unity
    WPF
  • 原文地址:https://www.cnblogs.com/hpcz190911/p/11537981.html
Copyright © 2020-2023  润新知