字符串(str)

用单引号''或双引号""括起来的任意文本

单双引号的用法

字符串中包含转义字符\,制表符\t,换行符\n

如果字符串中有很多字符都需要转义,就需要加很多\,为了简化python还允许用r' '表示

r' '

此外\还可以用作代码过长的换行

代码过长可以使用\换行

如果字符串内部有很多换行,用\n写在一行不好阅读,为了简化python允许用'''......'''的格式表示多行内容

'''......'''使用方法

字符串的操作

print('abca'.count('a'))#统计字符串中a出现的次数
2
print('abca'.center(50,'-'))#两个参数,第一个为长度,意思是生成一个长度50的字符串,把'abca'放在中间,两端用'-'代替
----------------------abcda-----------------------
print('ABCa'.casefold())#把字符串变成小写和lower()的区别在于lower() 只对 ASCII 也就是 'A-Z'有效,但是其它一些语言里面存在小写的情况就没办法了。文档里面举得例子是德语中'ß'的小写是'ss'
abca
print('aBCd'.capitalize())#输出为首字母大写的字符串
Abcd
print('a\tbcd'.expandtabs(40))#参数为数值,把字符串中的tab替换成40个空格,默认是8个
A BCDda
print('abcd'.endswith('d'))#判断字符串是否是以d结尾,输出布尔值
True
print('a我'.encode('gbk'))#转换为gbk编码的字符串,不写默认转换为utf-8
b'a\xce\xd2'
print('hello {name},i am {age} years old'.format(name='LY',age=30))#格式化输出
hello LY,i am 30 years old
print('hello {0},i am {1} years old'.format('LY',30))#格式化输出的第二中方式
hello LY,i am 30 years old
print('abacad'.find('a'))#查找字符串中最左边a的索引,rfind()方法表示从右侧查找
0
print('abacad'.index('a',2))#查找字符串中第二个a的索引,后面数值可不填,默认第一个,如果查询的某个字符只有一个时,后一个参数不可填写。rindex()从右侧
2
print('123'.isdigit())#判断字符串是否为自然数
True
print('Abc'.istitle())#判断字符串是否是首字母大写
True
print('Abcd'.isalpha())#判断字符串是否只由大小写字母组成
True
print('Abc134'.isalnum())#判断字符串是否由字母和数字组成(字母、数字不能是小数、字母数字组合)
True
print('123'.isdecimal())#判断是否是十进制
True
print('A1'.isidentifier())#判断字符串是否可以做变量名
True
print('skdjkf'.islower())#判断字符串是否全部小写
True
print('1贰三'.isnumeric)#判断是否是数字包含中文数字
True
print(' '.isspace())#判断是否空格
True
print('ACDL'.isupper())#判断是否全大写
True
print('+'.join(['1','2','3']))#将列表中的元素用+分隔,生成一个新的字符串(可以是元组、列表、字符串、字典(key))
1+2+3
print('AcDe'.lower())#将字符串中大写字母全部换成小写
acde
print(' Abc '.lstrip())#去掉字符串左侧的空格
Abc 
print('abc'.ljust(50,'*'))#长度50,不足的用*代替,原字符串左对齐(第二个参数只能是一个字符)rjust()字符串右对齐,
abc***********************************************
a = str.maketrans('ABCDE','1248@')#makstrans 配合translate使用,相当于加密
print('ADCE'.translate(a))#相当于解密
184@
print('ACAD'.partition('A'))#如果字符串包含指定分隔符,则分割成为一个三元元组,第一为分隔符左边的字串,第二个为分隔符本身,第三个为分隔符右边的字串rpartition()从右侧
('', 'A', 'CAD')
print('abca'.rsplit('a',1))#同split,从右侧匹配字符串进行分割
['abc', '']
print('abca'.replace('a','A',1))#把字符串中a替换成A,替换一次(最后一个参数可不写,默认所有)
Abca
print('ACAD'.split('A',1))#通过指定分隔符对从左侧匹配字符串进行切片(默认所有空字符,空格、\n、\t),输出为list,后一个参数指分割次数
['', 'CAD']
print('sdjfls'.startswith('s'))#是否以s开头
True
print(' s e q '.strip())#移除字符头尾指定字符默认空格rstrip()从右侧lstrip从左侧
s e q
print('AcBd'.swapcase())#对字符串中大小写字母进行转换
aCbD
print('i am 30 years old!'.title())#字符串中所有首字母变成大写
I Am 30 Years Old!
print('acde'.upper())#字符串中小写字母换成大写
ACDE
print('abc.zfill(50)')#生成指定长度字符,原字符串右对齐前面补0
00000000000000000000000000000000000000000000000abc

此外字符串也是一种有序的集合,可以通过索引来访问字符串中每一个位置的元素,记得索引是从0开始的

可以通过索引获取元素

字符串除了使用format格式化输出之外还可以使用%,格式化输出时,当%是一个普通字符,使用%%表示%

%格式化输出字符串

布尔型(bool)

布尔型表示判断只有True和Flase两种值,布尔值可以使用and、or、not计算

判断真假

整数型(int)

任意大小的整数,包含负整数,16进制,16进制使用0x前缀0-9,A-F表示

int

浮点型(float)

浮点数就是小数

python中有两种除法,/除法,结果是浮点型,//地板除,结果是整数

列表(list)

一种有序的集合,使用[ ]定义,可以随时添加和删除其中的元素

list

可以通过索引来访问list中的每个元素,索引默认从0开始,-1表示最后一位元素

list索引

list中所有元素也可以是不同的数据类型

list元素类型

列表中包含列表,获取元素的方法

列表的操作函数

len(list) 列表元素的个数

max(list) 返回列表元素的最大值

min(list) 返回列表元素的最小值

list() 修改其他的数据类型为list类型(不是所有数据类型都可转换)

列表操作方法

list.append(obj) 在列表末尾添加新元素,也可以添加一个列表

list.count(obj)  统计某个元素在列表中出现的次数

list.extend()   追加,在列表末尾添加一个列表

list.index(obj)   从列表中找出某个元素对应的索引号

list.insert(index,obj) 将某个元素插入列表指定的索引位置

list.pop(index) 删除列表中某个索引对应的元素,不写默认删除最后一位

list.remove(obj) 删除列表中某个元素,不写默认删除第一位

list.reverse() 反向列表中元素

list.sort()     对列表中元素进行排序

reverser()和sort()

列表的切片,可以通过下标获取列表中的一段元素,还可以设置步长

list切片

元组(tuple)

另一种有序的列表叫元组,元组跟列表非常相似,但是元组一旦初始化就不能修改,使用()定义,如果元组中只有一个元素需要在元素后面添加,(逗号)

tuple定义

字典(dict)

python内置了字典dict的支持,使用 键---值(key---value)的方式存储,具有极快的查找速度,定义方法使用{}定义,

dict是无序的,key必须是唯一的

定义dict

根据key值直接拿到value,把数据放入dict的方法,除了初始化时指定之外,还可以通过key放入,如果多次对一个key放入value,后面的值会把前面的冲掉,如果key不存在,dict就会报错

增加数据和修改数据

判断key是否在dict中有两种方法,一种是in,一种是get如果key不存在,可以返回None或自定义value

查找数据

删除dict数据

两种删除方法

和list相比dict有以下几个特点

a.查找和插入的速度极快,不会随着key的增加而变慢

b.需要占用大量的内存,内存浪费多

而list正好相反,所以dict是一种用空间换取时间的方法,需要牢记的是dict中key必须是不可变对象,list就不能作为key,而字符串、整数、元组都可以作为key

集合(set)

set和dict类型,也是一组key的集合,但是不存储value,由于key不能重复,所以,set是没有重复的

要创建一个set需要提供一个list作为输入集合

创建set

注意,传入的参数是一个list,而显示的{ }只是告诉你这个set内部有这几种元素,显示的顺序也不表示set是有序的,并且重复元素会自动过滤

可以通过add(key)添加元素到set,可以重复添加,不会有效果,通过remove(key)删除元素

增加删除

set可以看出是数学意义上无序和无重复的元素的集合,因此两个set可以做数学意义上的交集、并集等操作

交集、并集、差集、对称差集

判断元素是否在set中

判断一个set的所有元素是否在另一个set中,s3是否是s1的子集

空值(None)

空值是python中一个特殊的值,用None表示,None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

遗漏补充

各个数据类型可以转换

数据类型转换

循环打印list中的元素

循环list

循环打印list的下标---元素

enumerate()方法

循环打印dict的key和value

循环dict两种方式