python复习第2天:python基本数据类型(上)


title: python复习100天--第2天
date: 2020-02-21 15:00:24
tags:
- python
- 基础
categories: python复习
top: 3


Python基本数据类型

数字

  • 类型:int、float、bool、complex

  • 数字的四则运算

    eg:

    print(1 + 2)  # 整数相加得整数:3
    print(2.1 - 1.1)  # 浮点数相减得浮点数:1.0
    print(1 * 2)  # 整数相乘得整数:2
    print(2 / 1)  # 整数相除得浮点数:2.0
    print(9 // 2)  # 取整除法:4
    print(9 % 2)  # 求余除法:1
    print(3 ** 3)  # 求3的3次方:27
    

    一般来说,同类型的数字进行四则运算会得到同类型的数字,但是除法不是。因为除法可能会出现小数,所以一般在进行除法运算的时候,Python会自动把整数变成浮点数之后,再进行运算,所以,整数相除是浮点数。

  • 数字的类型转换。

    eg:

    print(1 + 1.1)  # 整数加小数得小数:2.1
    print(1 + True)  # 整数加布尔型得整数:2
    print(1 + (2 + 3j))  # 整数加复数得复数:3+3j
    

    python会自动把低精度的往高精度上转换。如果是整数遇到了浮点数,整数自动转浮点数(浮点数能存储的东西多);同样的,如果是整数遇到了布尔型,布尔型自动转整数(整数储存的数据比布尔型多)。整数与复数的转换规则也是如此。

    # 布尔型的转换规则
    """
    布尔转整数
    Ture ->  1
    False -> 0
    """
    print(int(True))  # 布尔转整数:1
    print(int(False))  # 布尔转整数:0
    # int函数可以把其它数据类型转成整数
    
    """
    整数转布尔
    非零-> True
    0 -> False
    """
    print(bool(10))  # 整数转布尔:True
    print(bool(-10))  # 整数转布尔:Ture
    print(bool(0))  # 整数转布尔:False
    

    注:int函数可将数据转整数,float函数可以将数据转浮点型,bool函数将数据转布尔型,complex函数将数据转复数。

字符串

  • 字符串切片:上节已讲。具体可以看https://www.vbahome.cn

  • 关于反斜杠转义:如果不想让它转义,可以加一个r,代表raw,原生不动。这样反斜杠就不会转义了。

    eg:

    print(r'1\n2')  # r代表不转义,此处输出:1\n2
    
  • 常用字符串内置函数

    • len:用于计算字符串的长度

      eg:

      print(len('你好玛利亚'))  # 输出结果为5
      
  • 常用字符串内置方法

    • join: 可以使用特定的字符将一个序列拼(通常为元组和列表)接成一个字符串

      eg:

      list1 = ['你好', ',', '玛利亚', '!']  # 后面会讲list,这里只是一个示意
      a = ''.join(list1)  # 利用空字符串把列表拼接成一个字符串
      print(a)  # 输出结果:你好,玛利亚!
      
    • replace:用于查找特定的字符串并替换成新的字符串

    • a = '我爱你,湖南'
      a = a.replace('湖南', '中国')  # 将湖南替换为中国,并且重新赋值给a
      print(a)  # 输出结果: 我爱你,中国
      
    • find:查找某个字符串是否在该字符串内,默认只返回第一个匹配的字符串的第一个字符所在位置.

      a = 'Hello world,Hello China'
      result1 = a.find('Hello')  # 找Hello的位置,结果: 0
      print(result1)
      
    • split:以特定字符串进行切割,常用于语句分词,分词后的结果是一个列表.

      eg:

      a = 'Hello world,Hello China'
      print(a.split(' '))  # 以空格进行分词
      # 输出结果:['Hello', 'world,Hello', 'China']
      
    • title: 将字符串标题化,也就是所有单词首字母大写

      eg:

      a = 'hello world,hello china'
      print(a.title())  # 标题化输出
      # 输出结果:Hello World,Hello China
      
    • upper:将单词的所有字母都变成大写

      eg:

      a = 'hello world,hello china'
      print(a.upper())  # 小写单词转大写
      # 输出结果:HELLO WORLD,HELLO CHINA
      
    • lower: 将所有单词大写转小写

      a = 'HELLO WORLD,HELLO CHINA'
      print(a.lower())  # 大写单词转小写
      # 输出结果:hello world,hello china
      
    • startwith: 是否以某个字符串开头,返回值为布尔型

      eg:

      a = 'hello world,hello china'
      print(a.startswith('hello'))  # 判断是否以hello开头
      # 输出结果:True
      
    • endswith: 是否以某个字符结尾,返回值为布尔型

      eg:

      a = 'hello world,hello china'
      print(a.endswith('china'))  # 判断是否以hello开头
      # 输出结果:True
      
    • strip: 删除两边多余的字符,默认是删除空格

      a = '  hello world,hello china  '
      print(a.strip())  # 删除两边的空格
      print(a.strip().strip('a'))  # 删完空格再删两边的字符a
      # 输出结果:
      """
      hello world,hello china
      hello world,hello chin
      """
      
    • encode:将字符串编码,默认是utf-8

      eg:

      a = '  hello world,hello china  '
      print(a.encode('utf-8'))  # 默认是utf-8,可以不填
      # 输出结果
      """
      b'  hello world,hello china  '
      """
      

      上面多了一个b,代表是二进制格式.

    • decode:将二进制解码成字符串,默认用utf-8进行解码

      eg:

      a = b'  hello world,hello china  '
      b = b'\xe6\x88\x91\xe7\x88\xb1Python'
      print(a.decode())  # 默认是utf-8,可以不填
      print(b.decode('utf-8'))
      # 输出结果
      """
        hello world,hello china  
      我爱Python
      """
      
  • 字符串的复制

    • 字符串常用*号代表复制,后面接数字代表复制多少次

      eg:

      a = 'hello'
      print(a*10)
      # 输出结果
      """
      hellohellohellohellohellohellohellohellohellohello
      """
      
  • 字符串转数字

    • 如果是数字构成的字符串,可以将该字符串转成浮点型数字

    • 注意:字符串只能转浮点型数字,不能转整数形

      eg:

      a = '1.0'
      b = '2'
      print(type(a))
      print(type(b))
      c = float(a)
      d = float(b)
      print(type(c))
      print(type(d))
      # 输出结果
      """
      
      
      
      
      """
      
  • 数字转字符串

    • 直接用str函数即可

      eg:

      a = 1
      print(type(1))
      b = str(1)
      print(type(b))
      # 输出结果
      """
      
      
      """
      

列表

  • list:代表多个有序数据的集合

  • 列表是有序的, 每个列表元素都有一个“序号”,一般称为索引

  • 索引是从零开始,然后依次加1

  • 想要获取列表的元素,需要用中括号加索引的位置

    eg:

    a = [1, 2, 3, 4]
    print(a[1])  # 取第二个索引所在的元素值
    # 输出结果
    """
    2
    """
    
  • 列表的创建方法

    • 法一: 和上面一样用中括号然后加逗号隔开
    • 法二: 利用list函数生成列表
    a = list()  # 创建一个空列表
    b = list('ashofsdo')  # 将字符串变成列表,默认一个字符串一个列表元素
    print(a)
    print(b)
    print(type(a))
    print(type(b))
    # 输出结果
    """
    []
    ['a', 's', 'h', 'o', 'f', 's', 'd', 'o']
    
    
    """
    
  • 列表常搭配的函数:range

    • range函数用于生成一个数字范围,一般以零开始,需要用list转成列表
    • range生成的数字范围可迭代,常用于循环(此处不需要过于理解)

    eg:

    a = range(10)  # 生成一个从零开始到10结束的范围,不包括10
    a_list = list(a)  # 将该范围转为列表
    print(a)
    print(type(a))
    print(a_list)
    print(type(a_list))
    # 输出结果
    """
    range(0, 10)
    
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    """
    
    • range可以自定义开头位置,用逗号隔开

    eg:

    a = list(range(1, 10))  # 从1开始,到10结束,不包括10
    print(a)
    # 输出结果
    """
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    """
    
    • range可以自定义步长,默认是1,可以加一个逗号,第二个逗号右边表示步长.

    eg:

    a = list(range(1, 30, 3))  # 从1开始,到30结束,不包括30,每隔3取一个
    print(a)
    # 输出结果
    """
    [1, 4, 7, 10, 13, 16, 19, 22, 25, 28]
    """
    
  • 列表的切片

    • 切片方法和字符串一样的
    • 切片后可以重新赋值(注意:只有字符串、列表,、字典可以重新赋值)

    eg:

    a = list(range(1, 10))  # 从1开始,到30结束,不包括30,每隔3取一个
    print('原来的a为: \n', a)
    a[0] = 100  # 对a[0]重新赋值
    print('重新赋值后的a为:\n', a)
    print(a[0:5])  # 取第一个到第5个值,不包括a[5],也就是不包括第6个值
    print(a[0:7:2])  # 从第一个取到第7个,不包括a[7],每隔两个取一个
    print(a[-5: -1: 2])  # 从倒数第五个取到倒数第一个,不包括倒数第一个,每隔两个取一个
    # 输出结果
    """
    原来的a为: 
     [1, 2, 3, 4, 5, 6, 7, 8, 9]
    重新赋值后的a为:
     [100, 2, 3, 4, 5, 6, 7, 8, 9]
    [100, 2, 3, 4, 5]
    [100, 3, 5, 7]
    [5, 7]
    """
    
  • 列表的常用函数

    • len:计算列表中元素的个数

      eg:

    a = list(range(10))
    print(len(a))

    输出结果

    """
    10
    """

    
    - max:找到列表中的最大值
    
    - min函数代表找到列表中的最小元素
    
    eg:
    
    ```python
    a = list(range(10))
    print(max(a))
    print(min(a))
    # 输出结果
    """
    9
    0
    """
    
  • 列表的常用方法

    • append:末尾追加元素

      eg:

      a = list(range(10))
      a.append(11)
      print(a)
      # 输出结果
      """
      [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11]
      """
      
    • copy函数,常用于列表的复制,防止新列表更新后污染旧的列表。

      eg:

      a = list(range(10))
      b = a.copy()  # 复制列表a
      b[0] = 100
      print(a)
      print(b)
      # 输出结果
      """
      

    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    [100, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    """

    
    - insert: 在置顶的位置插入元素
    
    eg:
    ```python
    a = list(range(10))
    a.insert(4, 100)  # 在第五个索引后面插入100
    print(a)
    # 输出结果
    """
    [0, 1, 2, 3, 100, 4, 5, 6, 7, 8, 9]
    """
    
    • index: 找到某个元素所匹配的索引位置

      eg:

      a = ['张三', '李四', '王二小']
      print(a.index('李四'))
      b = [2, 1, 5, 6, 9, 4]
      print(b.index(max(b)))  # 先找到b的最大值,再找到最大值对应的索引
      # 输出结果
      """
      1
      

    4
    """

    
    - sort: 对列表进行排序
    
    eg:
    
    ```python
    b = [2, 1, 5, 6, 9, 4]
    b.sort()  # 对b进行排序
    print(b)  
    # 输出结果
    """
    [1, 2, 4, 5, 6, 9]
    """
    
    • reverse:对列表进行反转

      eg:

      b = [2, 1, 5, 6, 9, 4]
      b.reverse()  # 对b进行反转
      print(b)
      # 输出结果
      """
      [4, 9, 6, 5, 1, 2]
      """
      
    • pop: 删除元素,默认删除最后一个元素

      eg:

      b = [2, 1, 5, 6, 9, 4]
      print('原始的b列表长这样:\n', b)
      b.pop()  # 删除最后一个元素
      print('删除最右边的元素后\n', b)
      b.pop(0)  # 删除第一元素
      print('删除第一个元素后的样子:')
      print(b)
      # 输出结果
       """
      原始的b列表长这样:
       [2, 1, 5, 6, 9, 4]
      删除最右边的元素后
      [2, 1, 5, 6, 9]
      删除第一个元素后的样子:
      [1, 5, 6, 9]
      """
      
    • remove函数,用于删除特定的元素,pop是删索引,注意两者区别。

      eg:

      b = [2, 1, 5, 6, 9, 4]
      print('原始的b列表长这样:\n', b)
      b.remove(5)  # 删除元素5
      print('第一次删除后\n', b)
      b.remove(6)  # 删除元素6
      print('第二次删除后:')
      print(b)
      # 输出结果
      

    """
    原始的b列表长这样:
    [2, 1, 5, 6, 9, 4]
    第一次删除后
    [2, 1, 6, 9, 4]
    第二次删除后:
    [2, 1, 9, 4]
    """

    
    
    

方法和函数的区别

  • 方法是一种特殊的函数

  • 方法属于某一个对象(数字、列表、字符串都可以看成对象,后面会仔细讲),而函数可以单独存在

    eg:如列表的pop方法只有列表才可以用,而max函数可以直接使用

  • 方法使用:obeject.funciton(),函数的使用:funciton()

  • 方法包含的参数中,一定有一个参数是对象本身

    eg:如sort方法实际就是对它自身进行排序,可以看成是list.sort(self),self代表它本身.
    博客首发:https://www.vbahome.cn,欢迎关注。

你可能感兴趣的:(python复习第2天:python基本数据类型(上))