目录
number(数字)
整型(int)
Python整型不限制大小
浮点型(float)
建议用科学计数法表示,避免精度缺失;例:Python中1e-4表示0.0001
复数型(complex)
实部和虚部都是浮点型;语法:a+bj或者complex(a,b)
布尔型(bool)
True和False,本质是0和1
数据类型转换
函数 | 作用 |
int(x) | 把x转换成整数类型 |
float(x) | 把x转换成浮点数类型 |
complex(x,y) | 将x作为复数的实部,y作为复数的虚部 |
chr(x) | ascII码转字符 |
str(x) | 把x转换成一个字符串 |
ord(x) | 字符转ascII码 |
序列
在Python中,序列类型包括字符串、列表、元组、字典和集合
string(字符串)
语法
'xxx' 或 "xxx"或'''xxx'''或"""xxx"""
访问语法
变量名[头下标:尾下标]
从左到右索引默认0开始,从右到左索引默认-1开始
str = 'Hello World'
print(str) # 输出字符串 输出:Hello World
print(str[0:-1]) # 输出第一个到倒数第二个的字符 输出:Hello Worl
print(str[-1]) # 输出字符串最后一个字符 输出:d
print(str[2:5]) # 输出第二个到第五个的字符 输出:llo
print(str[2:]) # 输出从第三个开始的所有字符 输出:llo World
print(str * 2) # 输出字符串两次 输出:Hello WorldHello World
常用操作
注意:字符串对象不可变,所以“修改”操作后,返回新字符串,并不对原始字符串做修改
拼接
-
多个字符串直接放一起
- 使用“+”连接字符串
- join() 用来将列表中多个字符串进行连接,并在相邻两个字符串之间插入指定字符,返回新字符串。
str = 'Hello World'
print("Hello"" World") # 输出:Hello World
print("Hello" + " World") # 输出:Hello World
print("".join(("Hello", " World"))) # 输出:Hello World
print(str.join("1234")) # 输出:1Hello World2Hello World3Hello World4
查找
-
find() , rfind()
分别用来查找一个字符串在另一个字符串指定的范围中首次和最后一次出现的位置,如果不存在则返回-1
str = 'Hello World'
print(str.find('l')) # 输出:2
print(str.rfind('l')) # 输出:9
print(str.find('x')) # 输出:-1
print(str.find('e', 1, 3)) # 在第一个位置和第二个位置范围内(前闭后开)查找'e';输出:1
-
index(), rindex()
功能同上,如果不存在则抛出异常
str = 'Hello World'
print(str.index('l')) # 输出:2
print(str.rindex('l', 1, 4)) # 在第一个位置和第三个位置范围内(前闭后开)查找'l';输出:3
- count()
返回出现次数,不存在则返回0
str = 'Hello World'
print(str.count('l')) # 输出:3
切分
-
split(), rsplit()
分别用来以指定字符为分隔符从字符串左端和右端开始将其分割成多个字符串,并返回包含分隔结果的列表。
如果不指定分隔符,则字符串中的任何空白字符(包括空格、换行符、制表符等)的连续出现都将被认为是分隔符,并且自动删除字符串两侧的空白字符,返回包含最终分隔结果的列表。
str = 'Hello World'
print(str.split('l')) # 输出:['He', '', 'o Wor', 'd']
print(str.rsplit('l')) # 输出:['He', '', 'o Wor', 'd']
print(str.split()) # 输出:['Hello', 'World']
删除
-
strip(), rstrip(), lstrip()
删除两端,右端,左端连续的空白字符或指定字符,返回新字符串
str = ' Hello World '
print(str.strip("l")) # 输出: Hello World
print(str.rstrip()) # 输出: Hello World
print(str.lstrip()) # 输出:Hello World
判断
-
startswith(), endswith()
判断字符串是否以指定字符串开始或结束
str = 'Hello World'
print(str.startswith('H')) # 输出:True
print(str.startswith('h',0,5))# 输出:False
print(str.endswith('H',0,1)) # 输出:True
list(列表)
列表中元素的类型可以不相同,它支持数字、字符串、其他列表(嵌套)
列表是写在方括号([])里、用逗号分隔开的元素列表。和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表,与字符串不同的是列表中的元素可以改变。
L = ['abc', 12, 3.45, 'Python', 2.789]
print(L) # 输出:['abc', 12, 3.45, 'Python', 2.789]
print(L[0]) # 输出:abc
L[0] = 'a' # 修改列表的第一个元素
L[1:3] = ['b', 'Hello'] # 修改列表的第二、三元素
print(L) # 输出:['a', 'b', 'Hello', 'Python', 2.789]
L[2:4] = [] # 删除列表的第三、四元素
print(L) # 输出:['a', 'b', 2.789]
列表推导式
语法
[表达式 for 迭代变量1 in 可迭代对象1 if 条件表达式1
for 迭代变量2 in 可迭代对象2 if 条件表达式2
...
for 迭代变量N in 可迭代对象N if 条件表达式N]
其中, if 条件表达式 是可选的
列表推导式 在逻辑上等价于一个循环语句,细品:
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
d = [c for b in a for c in b]
print(d) # 输出:[1, 2, 3, 4, 5, 6, 7, 8, 9]
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
d = []
for b in a:
for c in b:
d.append(c)
print(d) # 输出:[1, 2, 3, 4, 5, 6, 7, 8, 9]
二维列表
上个代码中, a 列表是一个二维列表, 其中的每个元素仍然是列表
# 使用 列表推导式 创建二维列表
l = [[j for j in range(4)] for i in range(3)]
print(l) # 输出:[[0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3]]
# 使用for循环来创建列表
l = []
for i in range(3):
l.append([])
for j in range(4):
l[i].append(j)
print(l) # 输出:[[0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3]]
tuple(元组)
元组是不可改变的列表
获取元组元素方法和列表一样
元组只有两种方法,count()和index(),所以效率比列表高
T = ('abc', 12, 3.45, 'Python', 2.789) # 可以不带括号,但是一定要有逗号,空元组没有逗号
print(T) # 输出:('abc', 12, 3.45, 'Python', 2.789)
print(T[-1]) # 输出:2.789
print(T[1:3]) # 输出:(12, 3.45)
set(集合)
集合是无序不重复元素的序列
创建
a = set('abcdabc')
print(a) # 每次输出顺序不一样 {'a', 'b', 'c', 'd'}
dictionary(字典)
字典是无序的
字典是一种映射类型,用“{}”标识,以键值对结构存储(键唯一,值不唯一)
dict1 = {'Alice': '123', 'Beth': '456', 'Cecil': 'abc'}
print(dict1['Alice']) # 输出:123
dict1['new'] = 'Hello' # 增加新的键值对
print(dict1) # 输出:{'Alice': '123', 'Beth': '456', 'Cecil': 'abc', 'new': 'Hello'}
dict1['Alice'] = '1234' # 修改已有键值对
print(dict1) # 输出:{'Alice': '1234', 'Beth': '456', 'Cecil': 'abc', 'new': 'Hello'}
dict2 = {'abc': 123, 456: 78.9}
print(dict2[456]) # 输出:78.9
Dict = {'age': 18, 'score': [98, 97], 'name': 'Zhang', 'sex': 'male'}
print(Dict['age']) # 输出:18
print(Dict.get('age')) # 输出:18
print(Dict.get('address', 'Not Exists.')) # 输出:No Exists
# print(Dict['address']) #出错,因为字典里无此键
for item in Dict: # 遍历输出字典的键
print(item)
print("----------")
for item in Dict.items(): # 遍历输出字典的元素,键和值全部输出
print(item)
print("----------")
for value in Dict.values(): # 遍历输出字典的值
print(value)