9.Python数据类型

数据类型

Python3 数字(Number):

Python 数字数据类型用于存储数值。

数据类型是不允许改变的,这就意味着如果改变数字数据类型的值,将重新分配内存空间。

Python 支持三种不同的数值类型:

整型(Int) - 通常被称为是整型或整数,是正或负整数,不带小数点。

Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python3 没有 Python2 的 Long 类型。

浮点型(float) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)

复数( (complex)) - 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

Python3 字符串:

python中字符串的格式

定义的变量b,存储的是字符串类型的值

b = "hello world"

或者

b = 'hello world'

总结:

双引号或者单引号中的数据,就是字符串。

下标和切片

1. 下标索引

所谓的下标就是编号,就好比储物柜,你知道编号就能找到你的柜子,拿到你自己的东西。

电影院选座:

字符串下标与切片:

演示:

Python转义字符

在需要在字符中使用特殊字符时,python用反斜杠(\)转义字符。如下表:

转义字符

描述

\(在行尾时)

续行符

\\

反斜杠符号

\'

单引号

\"

双引号

\a

响铃

\b

退格(Backspace)

\e

转义

\000

\n

换行

\v

纵向制表符

\t

横向制表符

\r

回车

\f

换页

\oyy

八进制数,yy代表的字符,例如:\o12代表换行

\xyy

十六进制数,yy代表的字符,例如:\x0a代表换行

\other

其它的字符以普通格式输出

Python字符串运算符

下表实例变量a值为字符串 "Hello",b变量值为 "Python":

操作符

描述

实例

+

字符串连接

a + b 输出结果: HelloPython

*

重复输出字符串

a*2 输出结果:HelloHello

[]

通过索引获取字符串中字符

a[1] 输出结果 e

[ : ]

截取字符串中的一部分,遵循左闭右开原则,str[0,2] 是不包含第 3 个字符的。

a[1:4] 输出结果 ell

in

成员运算符 - 如果字符串中包含给定的字符返回 True

'H' in a 输出结果 True

not in

成员运算符 - 如果字符串中不包含给定的字符返回 True

'M' not in a 输出结果 True

r/R

原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。

print( r'\n' )print( R'\n' )

Python字符串格式化

Python 支持格式化字符串的输出 。

尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。

在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。

符 号

描述

%c

格式化字符及其ASCII码

%s

格式化字符串

%d

格式化整数

%u

格式化无符号整型

%o

格式化无符号八进制数

%x

格式化无符号十六进制数

%X

格式化无符号十六进制数(大写)

%f

格式化浮点数字,可指定小数点后的精度

%e

用科学计数法格式化浮点数

%E

作用同%e,用科学计数法格式化浮点数

%g

%f和%e的简写

%G

%f 和 %E 的简写

%p

用十六进制数格式化变量的地址

Python3 的字符串内建函数

Python 的字符串常用内建函数如下:

序号

方法及描述

1

capitalize()arrow-up-right 将字符串的第一个字符转换为大写

2

center(width, fillchar)arrow-up-right

返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。

3

count(str, beg= 0,end=len(string))arrow-up-right

返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数

4

bytes.decode(encoding="utf-8", errors="strict")arrow-up-right

Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。

5

encode(encoding='UTF-8',errors='strict')arrow-up-right

以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'

6

endswith(suffix, beg=0, end=len(string))arrow-up-right 检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.

7

expandtabs(tabsize=8)arrow-up-right

把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。

8

find(str, beg=0 end=len(string))arrow-up-right

检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1

9

index(str, beg=0, end=len(string))arrow-up-right

跟find()方法一样,只不过如果str不在字符串中会报一个异常.

10

isalnum()arrow-up-right

如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False

11

isalpha()arrow-up-right

如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False

12

isdigit()arrow-up-right

如果字符串只包含数字则返回 True 否则返回 False..

13

islower()arrow-up-right

如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False

14

isnumeric()arrow-up-right

如果字符串中只包含数字字符,则返回 True,否则返回 False

15

isspace()arrow-up-right

如果字符串中只包含空白,则返回 True,否则返回 False.

16

istitle()arrow-up-right

如果字符串是标题化的(见 title())则返回 True,否则返回 False

17

isupper()arrow-up-right

如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False

18

join(seq)arrow-up-right

以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串

19

len(string)arrow-up-right

返回字符串长度

20

ljust(width[, fillchar])arrow-up-right

返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。

21

lower()arrow-up-right

转换字符串中所有大写字符为小写.

22

lstrip()arrow-up-right

截掉字符串左边的空格或指定字符。

23

maketrans()arrow-up-right

创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。

24

max(str)arrow-up-right

返回字符串 str 中最大的字母。

25

min(str)arrow-up-right

返回字符串 str 中最小的字母。

26

replace(old, new [, max])arrow-up-right

把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。

27

rfind(str, beg=0,end=len(string))arrow-up-right

类似于 find()函数,不过是从右边开始查找.

28

rindex( str, beg=0, end=len(string))arrow-up-right

类似于 index(),不过是从右边开始.

29

rjust(width,[, fillchar])arrow-up-right

返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串

30

rstrip()arrow-up-right

删除字符串字符串末尾的空格.

31

split(str="", num=string.count(str))arrow-up-right

num=string.count(str)) 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num 个子字符串

32

splitlines([keepends])arrow-up-right

按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

33

startswith(str, beg=0,end=len(string))arrow-up-right

检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。

34

strip([chars])arrow-up-right

在字符串上执行 lstrip()和 rstrip()

35

swapcase()arrow-up-right

将字符串中大写转换为小写,小写转换为大写

36

title()arrow-up-right

返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())

37

translate(table, deletechars="")arrow-up-right

根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中

38

upper()arrow-up-right

转换字符串中的小写字母为大写

39

zfill (width)arrow-up-right

返回长度为 width 的字符串,原字符串右对齐,前面填充0

40

isdecimal()arrow-up-right

检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。

Python3列表

想一想:

前面学习的字符串可以用来存储一串信息,那么想一想,怎样存储咱们班所有同学的名字呢?

定义100个变量,每个变量存放一个学生的姓名可行吗?有更好的办法吗?

答:

列表

创建列表

比C语言的数组强大的地方在于列表中的元素可以是不同类型的

打印列表

demo:

列表的操作:

列表的数据是可以进行修改的,可以增加元素,删除元素,修改元素,通过和字符串一样的下标索引元素。

访问列表中的值:

使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符如下图所示:

添加元素:

append

通过append可以向列表添加元素,如图所示:

extend

通过extend可以将另一个集合中的元素逐一添加到列表中:

insert

insert(index, object) 在指定位置index前插入元素object

修改元素:

修改元素的时候,要通过下标来确定要修改的是哪个元素,然后才能进行修改

查找元素:

所谓的查找,就是看看指定的元素是否存在

in, not in

python中查找的常用方法为:

in(存在),如果存在那么结果为true,否则为false

not in(不存在),如果不存在那么结果为true,否则false。

index, count:

index和count与字符串中的用法相同

删除元素:

列表元素的常用删除方法有:

del:根据下标进行删除。

pop:删除最后一个元素。

remove:根据元素的值进行删除。

排序:

sort方法是将list按特定顺序重新排列,默认为由小到大,参数reverse=True可改为倒序,由大到小。

reverse方法是将list逆序。

列表的嵌套:

一个列表中的元素又是一个列表,那么这就是列表的嵌套。

元组:

Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号

访问元组:

元组的内置函数count, index:

index和count与字符串和列表中的用法相同。

字典

生活中的字典:

开发中的字典:

字典和列表一样,也能够存储多个数据。

列表中找某个元素时,是根据下标进行的。

字典中找某个元素时,是根据'名字'(就是冒号:前面的那个值,例如上面代码中的'name'、'id')

字典的每个元素由2部分组成,键:值。例如 'name':'组长' ,'name'为键,'组长'为值

根据键访问值:

修改元素:

字典的每个元素中的数据是可以修改的,只要通过key找到,即可修改。

添加元素:

删除元素:

对字典进行删除操作,有以下:

Del,删除

clear(),清空

字典的操作:

练一练:

要求:创建一个班级,里面不少于10名同学,并找出索引为3和5的同学并输出学生的信息

要求:在之前的班级里添加新来的6名同学,这6名同学的索引分别为,2,5,6,7,8,1

Last updated