zoukankan      html  css  js  c++  java
  • python day3 int,str,list类型补充

    python day 3

    (学习资料来自老男孩教育)

    2019/10/06

    1. int类小知识点

    • 给变量赋值的两种方法
      给变量赋值一个整数有两种方法:
      一是直接赋值:a1 = 123
      二是使用int类来创建int类的对象:a1=int(123)
      实际上方法一是调用了方法二,本质上是通过int来创建的。而int(123)又是相当于int.init(123)。
      (懵逼了,但是后面应当会懂,暂时先这样记着就好了。)

    • 数字的内存优化
      在python内部,变量名存储于内存栈区,而对象存储于内存堆区,对象有三个特性:标识符(identifier),类型(type),值(value).
      变量是内存地址的引用,要查看一个变量的内存,使用id(x),x可以是任意对象或变量名称。
      [-5,257)左包右不包之间的整数,所有变量引用的都是同一块内存。这个区间之外的整数,引用的不是同一块内存。
      判断两个变量引用是不是同一块内存地址,可以看id是否相等,也可以使用is方法判断。

    a1,a2 = -5,-5 #链式赋值方法,将-5,-5分别赋值给a1,a2
    id(a1)==id(a2) #判断内存地址是否一样。
    a1 is a2 # 判断内存地址是否一样
    a3,a4 = -5.0,-5.0
    a3 is a4 # 返回False,因为不是整数
    a5,a6 = 257,257
    id(a5)==id(a6) # 返回False
    

    2. str类小知识点

    (知识点很繁琐,一下子记不住,只能在使用中慢慢记忆)

    • 创建字符串有两种方法
      方法一: s1 = 'name'
      方法二:s2 = str(value='name',encoding='utf-8',errors='strict')
      使用方法一时,本质上是调用方法二.

    • 字符串编码
      bytes类型与bin类型。bytes(字节)类型在网络之间通信使用。

    # UTF-8编码,一个汉字,3个字节,一个字节8位bit
    # gbk编码,一个汉字,2个字节。
    #李露
    #字节/字节/字节/字节/字节/字节/
    name = '李露'
    for i in name:
        #for迭代时,迭代遍历的是每一个字符。
        print(i)
        #bytes可以将字符串转换成字节,字节类型也跟int类型一样,是基本的数据类型。
        bytes_list = bytes(i,encoding='utf-8')
        print(bytes_list)#输出字节列表时,每个字节默认16进制
        for b in bytes_list:
            #输出时每一个字节默认10进制
            print(b,bin(b))#bin函数将对象转换成为二进制。
    >>> a = '蓝星'
    >>> a1 = bytes(a,encoding='utf-8')
    >>> print(a1)
    b'xe8x93x9dxe6x98x9f'
    >>> a2 = bytes(a,encoding='gbk')
    >>> print(a2)
    b'xc0xb6xd0xc7'
    >>> b2 = a2[0]
    >>> print(b2)
    192
    >>> print(bin(b2))
    0b11000000
    >>>
    

    3. list类小知识点

    创建列表时,有两种方法:
    一是直接定义:l1 = [1,2,3]
    二是通过list类:l2 = list((1,2,3)),
    事实其实调用了list.init(seq=()),就是seq=(1,2,3)。list()接一个参数,其参数是可迭代对象。只要是可迭代的,都可以是list()的参数str,list,dict,tuple,set,generator,iterator,iterable等类型都是可迭代对象
    方法一本质上是默认使用了方法二。

    dict1 = dict(name='lanxing',sex='male') #因为字典迭代时,默认是keys。
    l3 = list(dict1)
    print(l3)
    ['name', 'sex']
    

    切片取的是一个子序列,原来的类型是什么样的序列,子序列主是什么序列,即使只有一个元素,切片取的也是序列
    列表里面可以嵌套子列表,子列表里面又可以嵌套子列表

    li = [1,2,3,'name','x']
    li[0]   # 这是索引,取单个元素
    li[0:1]   #这是切片,返回的是一个只包含元素1的列表
    li[0:1][0] # 先切片,再把元素1取出来
    li2 = [1,2,3,'name','x',[4,5,6]]   #有一个子列表的列表。
    li2[5][0]  #通过索引将元素4取出来
    li[5:]  #这是切片,返回的是一个列表,该列表只有一个元素,而该元素正是一个列表。
    li[5:][0][0]  # 通过切片将元素4取出来
    
  • 相关阅读:
    效能分析
    四人小组项目--连连看的设计与实现
    每周工作量及进度统计(第三周)
    四则运算改进版
    词频统计改进版1
    SCRUM站立会议
    四则运算
    效能分析
    四人小组项目的需求和功能等描述
    通读构建之法
  • 原文地址:https://www.cnblogs.com/lanxing0422/p/pythonday3.html
Copyright © 2011-2022 走看看