• Python基础之运算符及数据类型(列表及元组)


    • 运算符
    • 数据类型
    • 字符串类型及操作
    • 切片
    • 列表类型及操作
    • 元祖类型及操作

    0x01 运算符

    • 算术运算符
    +         # 加  --> 两对象相加  
    -          # 减  --> 1、负数  2、两个数相减
    *          # 乘  --> 1、两个数相乘 2、重复前面字符若干次
    /          # 除  --> 两数相除 
    %        # 取模      --> 返回两数相除后的"余数"
    //         # 取整除   --> 返回两数相除后,"商"的整数部分
    
    • 比较运算
    ==      # 等于       ---> 两个对象是否相等
    !=       # 不等于    ---> 两个对象不相等
    <>      # 不等于    ---> 两个对象不相等
    >        # 大于        ---> 左边大于右边
    <        # 小于        ---> 左边小于右边,返回1为真(True);返回0为假(False)
    >=      # 大于等于    ---> 左边大于等于右边
    <=      # 小于等于    ---> 左边小于等于右边 
    
    • 赋值运算
    =        # 赋值
    +=      # 加法赋值运算
    -=       # 减法赋值运算
    *=       # 乘法赋值运算
    /=       # 除法赋值运算
    %=     # 取模赋值运算
    //=      # 取整除赋值运算 
    
    • 位运算
    &       # 与
    |        # 或
    ^       # 异或
    ~       # 取反
    <<     # 左移动
    >>     # 右移动
    
    • 逻辑运算
    and    # 布尔"与"
    or       # 布尔"或"
    not     # 布尔"非"
    
    • 成员运算
    in        # 若在指定序列中找到值。返回True,否则返回False。
    not in  # 若在指定序列中没找到值。返回True,否则返回False。
    
    • 身份运算
    is        # 判断两个标识符,是不是引用一个对象
    is not  # 判断两个标识符,是不是引用不同对象
    

    0x02 数据类型

    Python中,能直接处理的数据类型为: 数值型、字符串型、列表型、元组型、字典型

    • 数值类型
      分类:整型、浮点型、长整型、复数

    2.1 整型
    范围: 2**32(2的31次方个正和2的31次方的个负数),包含正数和负数
    查看数据类型方法: type()

    • 定义字符串
    >>> res = "Hello World!"
    >>> type(res)
    <class 'str'>
    >>> date = 20
    >>> type(date)
    <class 'int'>
    

    2.2 浮点型
    带小数点的数,在进行计算时,位数会进行四舍五入

    • 定义浮点数
    >>> a = 12.3
    >>> type(a)
    <class 'float'>
    >>> b = 15.7
    >>> type(b)
    <class 'float'>
    

    2.3 长整型
    Ll 表示,在python3内,已被取消

    >>> a = 121211212122222222222222222222222222222222222222222222222222222222222
    >>> type(a)
    <class 'int'>            # python3内,已取消
    

    2.4 复数
    j 标识
    复数一般用于科学计算,一般不会使用

    >>> type(341j)
    <class 'complex'>
    

    2.5 类型转换

    • 字符串数值转换为浮点型
    >>> num = '12'
    >>> type(num)
    <type 'str'>
    >>> float(num)
    12.0
    
    • 字符串转换为整形
    >>> num = '18'
    >>> type(num)
    <type 'str'>
    >>> num1 = int(num)
    >>> type(num1)
    <type 'int'>
    >>> num1
    18
    
    • 整形转换为浮点型
    >>> num = 20
    >>> type(num)
    <type 'int'>
    >>> num1 = float(num)
    >>> num1
    20.0
    >>> type(num1)
    <type 'float'>
    
    • 浮点型 转换为整形
    >>> num = 22.33
    >>> type(num)
    <type 'float'>
    >>> num1 = int(num)
    >>> type(num1)
    <type 'int'>
    >>> num1
    22
    
    • round() 返回浮点数x的四舍五入值

    格式:

    round( x [, n]  )
    

    示例:

    >>> round(4.567, 2)
    4.57
    >>> type(a)
    <type 'float'>
    

    0x03 字符串类型及操作

    3.1 以 单引号 ( ' ) 或 双引号 ( “ ) 括起来的任意对象

    3.2 定义字符串:单引号,双引号,三引号

    • 字符串定义
    str='This is string'
    str="This is string"
    str='''This is string''' 
    

    PS:
    三个引号 ( """ )可以是多行注释,但不能单双混合

    3.3 字符串方法

    • 查找
      功能:找到sub在str中的位置,如果找到返回index(匹配到第一个),找不到返回-1
      用法:str. find(sub,start=None,end=None)
    >>> name = "python"
    >>> name.find(3)
    >>> name.find("t")
    2
    
    • 替换
      功能:字符串的替换,把src替换为dst,counter为替换几次
      用法:str.replice('src','dst',counter=None)
    >>> name = 'Hello python'
    >>> name.replice('p','P')
    >>> name
    Hello Python
    
    • 去除字符串前后空格
      功能:去除两边的string,默认是移除空格换行及制表符
      用法:str.strip('string')
    >>> str = ' Python '
    >>> str.strip()
    'Python'
    
    • 字符串连接
      功能:连接,用于把可迭代对象的每个元素用 什么 连接起来,可迭代对象的元素必须是str
      用法:'分隔符'.join(iterable)
    >>> str = 'Hello Python'
    >>> '_'.join(str)
    'H_e_l_l_o_ _P_y_t_h_o_n'
    
    • 分割字符串
      功能:把字符串默认从左开始对象使用split进行分割,默认会对所有分割符进行分割,num可以指定分隔符的个数
      用法:str.split('split',num=None)
    >>> str = 'Hello Python'
    >>> str.split('y')
    ['Hello P', 'thon']
    
    • 格式化字符串
      功能:格式化字符串,位置占位符为{0},{1}
      用法:str.format()
    >>> print('Hello {0}'.format('World'))
    Hello World
    

    PS:
    采用命名占位符{name},{age},赋值时候需要 name=Mr.Chow,age=18

    0x04 切片操作

    4.1 字符串是一个序列,可以通过 索引切片 操作
    4.2 原则: 前开后闭

    • 从第0个开始截取2个字符,其中0可以省略
    In [1]: a='abcd'
    In [2]: a[0:2]
    Out[3]: 'ab'
    
    • 默认是从左往右(前往后),带减号,表示从右往左(后往前),-1表示最后一个字符(a='abcd',-1的值是d,也就是3,顾a[:-1],就等于a[0:3])
    In [4]: a='abcd'
    In [5]: a[:-1]
    Out[6]: 'abc'
    
    • 从1开始截取到最后
    In [7]: a='abcd'
    In [8]: a[1:]
    Out[9]: 'bcd'
    
    • 步长为2,表示从0开始步长为2,(取0,2,4,6)
    In [10]: a='abcd'
    In [11]: a[::2]
    Out[12]: 'aceg'
    
    • 表示倒着取,从倒数第五个取到倒数第一个(不包含倒数第一,要想取可以使用a[-5:])
    In [13]: a
    Out[14]: 'abcdefg'
    In [15]: a[-5:-1]
    Out[16]: 'cdef'
    
    • 从0开始取到第5个,步长为1,步长为2
    In [17]: a
    Out[18]: 'abcdefg'
    In [19]: a[0:5:1]
    Out[20]: 'abcde'
    In [21]: a[0:5:2]
    Out[22]: 'ace'
    
    • 从后往前取,步长为-1,表示每次倒着取1个,由于没有指定结尾,默认到最后,所以就把数字逆了过来
    In [23]: a
    Out[24]: 'abcdefg'
    In [25]: a[-1::-1]
    Out[26]: 'gfedcba'
    
    • 表示先每隔2个取出来,然后从头开始取2个
    In [27]: a
    Out[28]: 'abcdefg'
    In [29]: a[::2][:2]
    Out[30]: 'ac'
    

    0x05 列表类型及操作

    • 定义
    • 方法
    • 分片

    • 定义

    5.1 关键字 --> list,有序集合, 数据可变,[]标识,元素间逗号分隔

    • 创建列表
    list1 = []              # 创建空列表  
    list2 = list()         # 工厂函数,调用list()内部函数给list2进行赋值  
    
    • 创建有值列表
    list3 = [1, 'list', True]  
    
    • 复杂列表
    str = 100
    list = ['Chow', str, (11, 43), False, ['Robin', 'Python'], {name: 'Chow', age: 18}]
    print(list)
    print(type(list))
    len(list)
    
    • 方法操作
    • 方法:
    append              # 追加  
    remove              # 删除指定元素  
    pop                    # 删除列表最后一位或指定元素,有返回值  
    reverse              # 反转  
    insert                 # 数据插入,根据元素下标插入  
    sort                    # 排序  
    
    • append(追加)
    >>> list = [11, 22, 33, 10, 'aa', True]
    >>> list.append(100)
    >>> list
    [11, 22, 33, 10, 'aa', True, 100]
    
    • remove(移除指定元素)
    list = [11, 22, 33, 10, 'aa', True]
    list.remove(33)
    print(list)
    [11, 22, 10, 'aa', True]
    
    • pop(删除列表最后一位或指定元素)
    list = [11, 22, 33, 10, 'aa', True]
    list.pop(-1)
    list.pop(0)
    print(list)
    [22, 33, 10, 'aa']
    
    • del(删除指定元素)
    list = [11, 22, 33, 10, 'aa', True]
    del list[0]
    print(list)
    [22, 33, 10, 'aa', True]
    
    • reverse(反转)
    list = [11, 22, 33, 10, 'aa', True]
    list.reverse()
    print(list)
    [True, 'aa', 10, 33, 22, 11]
    
    • insert(插入)
    list = [11, 22, 33, 10, 'aa', True]
    list.insert(2, 'Python')
    print(list)
    [11, 22, 'Python', 33, 10, 'aa', True]
    
    • sort(排序)
    list = [11, 22, 33, 10, 200, 3]
    list.sort()
    print(list)
    [3, 10, 11, 22, 33, 200]
    
    • extend(扩张两个列表)
    list1 = [11, 22, 33, 10, 200, 3]
    list2 = ["aa", 'bb', 'cc']
    list1.extend(list2)
    print(list1)
    [11, 22, 33, 10, 200, 3, 'aa', 'bb', 'cc']
    
    • 列表循环添加元素
    a = list()
    for i in range(1, 10):
        a.append(i)
    
    print(a)
    
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    • 分片
      < 待后期完善 >

    0x06 元组类型及操作

    • 概念
    • 特点
    • 定义元祖
    • 操作方法
    • 概念

    6.1 标识 () , 逗号 进行分割。是列表的扩展
    6.2 不可变类型

    • 特点

    6.3 元组值不可改变
    6.4 通常用来接收函数的返回值
    6.5 可以同时储存不同类型的数据,也可以引用其它元组

    • 定义元祖
    tuple1 = (11, 22, 33)
    type(tuple1)
    print(tuple1)
    (11, 22, 33)
    
    tuple1 = (11,)
    type(tuple1)
    print(tuple1)
    (11,)
    

    6.6 元祖引用

    tuple1 = (11, 22, 33)
    tuple2 = ('aa', 'bb', 'cc', tuple1)
    type(tuple2)
    print(tuple2)
    ('aa', 'bb', 'cc', (11, 22, 33))
    

    6.7 引用其它元祖内的指定下标元素

    tuple1 = (11, 22, 33)
    tuple2 = ('aa', 'bb', 'cc', tuple1[2])
    print(tuple2)
    ('aa', 'bb', 'cc', 33)
    
    • 元祖方法操作
      6.8 a.count()  统计value在元组中出现的次数,不存在返回0
    >>> a = (30, 4, 2, 11, 11, '11', 14, 11)
    >>> a.count(11)
    3
    
    • index() 用来返回值在元组中的索引下标,若值不存在,则会报错。如果有多个,默认返回第一个(可以指定从哪个索引开始查找到某个索引)
    >>> a = ('11', '22', '33', '41')
    >>> a.index('22')
    1
    
    >>> a = ('a', 'b', 'a', 'b', 'a', 'b', 'a', 'b')
    >>> a.index('a', 5, 7)
    6
    
  • 相关阅读:
    C# Enum转换
    Split
    WCF访问安全
    [转] 检索 COM 类工厂中 CLSID 为 {000209FF00000000C000000000000046} 的组件时失败
    ICSharpCode.SharpZipLib.dll压缩的zip包,7zip解压时出错
    js控制ctrl+p
    跨域访问WCF问题
    sql:过滤字段中是否包含数字
    序列化/反序化
    [转]RegistryKey 操作注册表
  • 原文地址:https://www.cnblogs.com/RobinChow/p/8673451.html
Copyright © 2020-2023  润新知