美文网首页python复习100天
python复习第2天:python基本数据类型(上)

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

作者: 潮办公 | 来源:发表于2020-02-21 18:01 被阅读0次

    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))
        # 输出结果
        """
        <class 'str'>
        <class 'str'>
        <class 'float'>
        <class 'float'>
        """
        
    • 数字转字符串

      • 直接用str函数即可

        eg:

        a = 1
        print(type(1))
        b = str(1)
        print(type(b))
        # 输出结果
        """
        <class 'int'>
        <class 'str'>
        """
        

    列表

    • 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']
      <class 'list'>
      <class 'list'>
      """
      
    • 列表常搭配的函数: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)
      <class 'range'>
      [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
      <class 'list'>
      """
      
      • 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基本数据类型(上)

        本文链接:https://www.haomeiwen.com/subject/xhchqhtx.html