zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Linux Core Dump
    ODP.NET Managed正式推出
    获取EditText的光标位置
    (Java实现) 洛谷 P1603 斯诺登的密码
    (Java实现) 洛谷 P1603 斯诺登的密码
    (Java实现) 洛谷 P1036 选数
    (Java实现) 洛谷 P1036 选数
    (Java实现) 洛谷 P1012 拼数
    (Java实现) 洛谷 P1012 拼数
    (Java实现) 洛谷 P1028 数的计算
  • 原文地址:https://www.cnblogs.com/surpassme/p/12927492.html
Copyright © 2011-2022 走看看