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

posted @ 2020-05-21 00:36  Surpassme  阅读(426)  评论(0编辑  收藏  举报