• Python基础-02数据类型


    2.Python数据类型

        对于任何一种编程语言的学习,需要打好入门的基础知识,在Python中常见的基础知识有基本数据类型条件语句循环语句函数,更深层次需要掌握面向对象的知识。今天我们先来了解学习一下基础知识,在Python常见的基本数据类型如下所示:

    020101Python数据类型.png

    2.1 基本数据类型

    2.1.1 布尔型

        布尔型为(boolean)变量只能取两个值TrueFalse,如果把布尔变量用于数字计算的话,则1代表True,0代表False。示例代码如下所示:

    t=True
    f=False
    print(t+f)
    print(1+t)
    print(3+f)
    

    运行结果如下所示:

    1
    2
    3
    

        除了直接给变量赋值True和False之外,还可以使用bool(variable)来创建变量,其中variable可以是

    • 基本数据类型:整形、浮点型、布尔型等
    • 容器数据类型:字符、元组、列表、集合和字典等

    在Python中None、0、0.0、空值、空列表、空集合、空元组和空字典等都视为False

    2.2.1 数字型

        在Python中,常用的数字型都是内置数据类型,可以直接用来进行数学运算。如下所示:

    020201数学操作符.png

    2.2.1.1 整型

        整型也即我们常说的整数类型的数据,如1,-1等。示例代码如下所示:

    a=100
    b=-100
    print(type(a),type(b))
    

    运行结果如下所示:

    <class 'int'> <class 'int'>
    
    • 在Python,查看一个数据的类型可以使用函数type()
    • 示例代码查看数据类型输出结果为 <class 'int'>,在Python一切皆为对象,因此整型也是一个类,而类就会相应的属性和方法

    在Python中通过dir(variable)和help(variable)可以查看variable对应的属性和方法,如dir(int)

        示例代码如下所示:

    a=100
    print(a.__add__(100))
    print(a.__divmod__(3))
    

    运行结果如下所示:

    200
    (33, 1) # 返回结果为商和余数
    
    2.2.1.2 浮点型

        浮点型也即我们常见的带小数位的数字,如1.2,1.0987等,示例代码如下所示:

    a=1
    b=1.
    c=1.23
    
    print(type(a),type(b),type(c))
    

    运行结果如下所示:

    <class 'int'> <class 'float'> <class 'float'>
    

        在示例代码中,加一个小数点即可创建一个浮点型数据类型,如果需要对小数位数进行控制,可以使用round()函数,如果对精度要求比较高,可以使用包decimal,默认精度为28位,如下所示:

    decimal.getcontext()
    Context(prec=28, rounding=ROUND_HALF_EVEN, Emin=-999999, Emax=999999, capitals=1, clamp=0, flags=[], traps=[InvalidOperation, DivisionByZero, Overflow])
    

    2.2容器类数据类型

        在前面介绍的布尔型、数字类型的数据都可以看成是单独的数据,而这些数据都可以放在一个容器中进而得到一个容器类型的数据。如

    • 字符型:可以看成是由很多个字节组成的容器。字节(char)这里借用其他编程语言,Python中并未有此种数据类型,在其他语言中单个字符的数据称之为char类型
    • 元组 (tuple)、列表 (list)、字典 (dict) 和集合 (set) 可以看成是一个容器的任何类型变量

    2.2.1 字符型

        在Python中使用引号(单引号、双引号、三引号)括起来的均为字符型,如'abc',"abc","""abc"""。示例代码如下所示:

    a="China"
    b='China'
    c="""China"""
    print(type(a),type(b),type(c))
    

    运行结果如下所示:

    <class 'str'> <class 'str'> <class 'str'>
    

    2.2.2 元组

        在Python中元组的定义语法格式如下所示:

       (item1,item2,...,itemn)
    

     item1,item2,...itemn
    
    • 这里推荐第一种写法
    • 元组两个关键点小括号逗号

        创建元组示例如下所示:

    a=1,2,3
    b=(1,2,3)
    c=(1,)
    

    常见的元组一般为一维,也可以创建多维元组,如((1,2),(3,4))

    2.2.3 字典

        在Python字典的定义格式语法如下所示:

     {
       key1:value1,
       key2:vallue2,
       ...
       keyn:valuen,
     }
    
    • 字典中每个元素是key:value的形式成对出现
    • 定义字典使用大括号,每个键值对使用冒号进行分隔,不同的键值对之间使用逗号分隔
    • 最后一个键值对后面的逗号可以省略,一般建议是不要省略,便于后面继续添加元素

        示例代码如下所示:

    d={
        "beijing":"beijing",
        "shanghai":"shanghai",
        "jiangsu":"nanjing",
        "zhejian":"hangzhou",
        "hubei":"wuhai",
    }
    

    2.2.4 集合

        在Python中,集合的定义形式有以下两种方法:

     {item1,item2,...itemn}
    

     set(列表或元组)
    
    • 在使用大括号定义集合时,里面的元素不能为空,否则则会变为字典类型
    • 使用set()定义集合时,里面必须为列表或元组
    • 在集合中是不会出现重复元素的,因此可以使用集合进行去重

        示例代码如下所示:

    a={1,2,3,4,5}
    b=(1,2,3,4,5)
    c=set(b)
    

    2.2.5 列表

        在Python中,列表的定义格式如下所示:

     [item1,item2,...,itemn]
    
    • 列表使用中括号进行定义,每个元素使用逗号进行分隔

        示例代码如下所示:

    [1,2,3]
    

    2.2.6 索引和切片

    • 索引:代表指定对象所处的位置,在Python中索引从0开始,而不是1
    • 切片:通常形式为startIndex : endIndex : step,这里需要注意在取值时,是包含startIndex对应的元素,但不包含endIndex对应的元素,step为对应的步长(简单来讲是含前不含后)
    • 索引是获取单个元素,而切片则是获取一组元素

    索引可以为正值也可以负值,正索引从0开始,从左到右的形式取值,负索引从-1开始,从右向左路的形式取值。

        以上详细查看如下示意图:

    020206索引与切片.png

    对于容器类型的数据类型而言,列表和元组是可以使用索引和切片来进行获取指定的元素或元素组。

    1.切片的通用写法

     startIndex : endIndex : step
    
    • 以上这种写法代表从指定索引startIndex开始,取值到指定索引endIndex,步长为step。但这三个值并不是每次必须要填写,还可以省略掉

    2.切片省略endIndex和step

     startIndex :
    
    • 以上这种写法代表从索引startIndex开始,取值到末尾,步长为默认步长1

    3.切片省略startIndex和step

     : endIndex
    
    • 以上这种写法代表从索引0开始,取值到指定的索引endIndex位置,步长为默认步长1

    4.省略step

     startIndex : endIndex
    
    • 以上这种写法代表从指定索引startIndex开始,取值到指定的索引endIndex位置,步长为默认步长1

    5.省略startIndex和endIndex

     ::step
    
    • 以上这种写法代表获取所有元素,但步长为指定的步长step

    6.全部省略

     ::
    
    • 以上这种写法代表获取所有元素且默认步长为1

        示例代码如下所示:

    a=[0,1,2,3,4,5,6,7,8,9]
    
    print(f"[startIndex:endIndex:step] - {a[2:5:1]}")
    print(f"[startIndex:] - {a[3:]}")
    print(f"[:endIndex] - {a[:5]}")
    print(f"[startIndex:endIndex] - {a[2:6]}")
    print(f"[:step] - {a[::2]}")
    print(f"[::] - {a[::]}")
    print(f"[::step] - {a[::-1]}")
    print(f"[startIndex:endIndex] - {a[-5:-3]}")
    

    输出结果如下所示:

    [startIndex:endIndex:step] - [2, 3, 4]
    [startIndex:] - [3, 4, 5, 6, 7, 8, 9]
    [:endIndex] - [0, 1, 2, 3, 4]
    [startIndex:endIndex] - [2, 3, 4, 5]
    [:step] - [0, 2, 4, 6, 8]
    [::] - [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    [::step] - [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
    [startIndex:endIndex] - [5, 6]
    

    本文地址:https://www.cnblogs.com/surpassme/p/12927492.html

    本文同步在微信订阅号上发布,如各位小伙伴们喜欢我的文章,也可以关注我的微信订阅号:woaitest,或扫描下面的二维码添加关注:
    MyQRCode.jpg

  • 相关阅读:
    javaweb中带标签体的自定义标签
    javaweb带父标签的自定义标签
    Filter的常见应用
    Filter内容
    JFace TableViewer性能改善 -- 使用VirtualTable
    SWT table性能改善 -- 使用VirtualTable
    java自动探测文件的字符编码
    [小技巧]Filezilla无法确定拖放操作目标,由于shell未正确安装__解决办法
    批量导出VBA工程中的Source
    开源许可证知多少
  • 原文地址:https://www.cnblogs.com/surpassme/p/12927492.html
Copyright © 2020-2023  润新知