zoukankan      html  css  js  c++  java
  • 基础补充

        • 二次编码

    编码回顾:

      ascii码:最早的编码集,只有数字,字母,特殊符号,不支持中文。

      gbk:中文国标码,包含了ASCII编码和中文的常用的编码。

      unicode:万国码,包含了所有国家的语言。

      utf-8:可变长度的万国码,英文占1个字节(8bit),欧洲文字占两个字节(16bit),亚洲文字占3个字节(24bit)。

    编码:

    1 s = "葫芦娃"
    2 s1 = s.encode("utf-8")  # utf-8为编码集
    3 print(s1)
    4 # 输出结果
    5 # b'xe8x91xabxe8x8axa6xe5xa8x83'

    解码:

    1 s = b'xe8x91xabxe8x8axa6xe5xa8x83'
    2 s1 = s.decode("utf-8")
    3 print(s1)
    4 # 输出结果
    5 # 葫芦娃

     编码与解码的应用场景:文件操作,网络传输,网络编程

    • 基础数据类型补充

    利用for循环删除一个列表:

    1 # 错误示例
    2 lst = ["大娃", "二娃", "三娃", "四娃", "五娃", "六娃", "七娃"]
    3 for i in lst:
    4     lst.remove(i)
    5 print(lst)
    6 # 输出结果
    7 # ['二娃', '四娃', '六娃']

     那么为什么删不干净呢?因为当第一次循环的时候删除了"大娃",这时候列表中剩余的元素都向前移了一位,for循环第二次的时候,在第二个位置的是"三娃",这时候"三娃"被删除了,后面的以此类推。

    1 # 正确方法1
    2 lst = ["大娃", "二娃", "三娃", "四娃", "五娃", "六娃", "七娃"]
    3 for i in range(len(lst)):
    4     lst.pop()
    5 print(lst)
    6 # 输出结果
    7 # []
     1 # 正确方法2
     2 lst = ["大娃", "二娃", "三娃", "四娃", "五娃", "六娃", "七娃"]
     3 ls1 = []
     4 for i in lst:
     5     ls1.append(i)
     6 for n in ls1:
     7     lst.remove(n)
     8 print(lst)
     9 # 输出结果
    10 # []
    •  深浅拷贝

    浅拷贝:

     1 li = [1, 2, 3, 4, [5, 6, 7]]    
     2 lst = li.copy()
     3 print(li)
     4 print(lst)
     5 # [1, 2, 3, 4, [5, 6, 7]]
     6 # [1, 2, 3, 4, [5, 6, 7]]
     7 li[-1].append(90)
     8 print(li)
     9 print(lst)
    10 # [1, 2, 3, 4, [5, 6, 7, 90]]
    11 # [1, 2, 3, 4, [5, 6, 7, 90]]

     为什么我们给li这个列表里边嵌套的列表添加了一个元素后,lst这个列表也变了呢?

      下面我们来画图分析一下:

     

    深拷贝:

    那么我们怎么样才能让新列表不受原来的列表影响呢?

     1 import copy
     2 lst = [1, 2, 3, 4, [5, 6, 7]]
     3 ls = copy.deepcopy(lst)
     4 print(lst)
     5 print(ls)
     6 # 输出结果
     7 # [1, 2, 3, 4, [5, 6, 7]]
     8 # [1, 2, 3, 4, [5, 6, 7]]
     9 lst.append(90)
    10 print(lst)
    11 print(ls)
    12 # 输出结果
    13 # [1, 2, 3, 4, [5, 6, 7], 90]
    14 # [1, 2, 3, 4, [5, 6, 7]]
    • is 和 == 的区别

    is是判断两边的内存地址是否相等

    ==是判断两边的值是否相等

    • 代码块和小数据池

    代码块:
      一个文件,模块,类,函数 cmd一行就是一个代码块
      python内置,为了节省资源,提高效率

      数字: 范围 -5 ~ 256

      字符串: 字符串进行乘法的时候总长度不能超过20

    小数据池:

      python内置

      数字: 范围 -5 ~ 256

      字符串: 字符串进行乘法的时候总长度不能超过20

      在同一文件下,先执行代码块,后执行小数据池

  • 相关阅读:
    java线程管理
    java进程间通信
    Possible multiple enumeration of IEnumerable
    Adding Search
    Working with SQL Server LocalDB
    ASP.NET Razor
    ASP.NET Razor
    modelstate.isvalid false
    Razor Intro
    open Command window here
  • 原文地址:https://www.cnblogs.com/jiayunlong/p/10236144.html
Copyright © 2011-2022 走看看