学习通过 菜鸟教程:https://www.runoob.com/python3/python3-data-type.html
类型转换
只需要将数据类型作为函数名即可,如int(x)
、float(x)
数字(Number)
- int:10,py3 中int类型是动态长度的,是长整型,理论支持无限大的数字
- float: 32.3e+18、 -90.
- complex: 9.322e-36j
字符串(String)
取值顺序
- 从左到右索引默认0开始的,左开右闭
- 从右到左索引默认-1开始的,左开右闭
截取与拼接
1 | str = 'Hello World!' |
字符串格式化
1 | # 用 % |
带开头的字符串
f-string
格式化字符串以f
开头,后面跟着字符串,字符串中的表达式用大括号{}
包起来,它会将变量或表达式计算后的值替换进去
1 | x = 1 |
原始字符串
1 | # r'' / R'' |
Unicode 字符串
在Python3中,所有的字符串都是16位unicode字符串。在Python2中,需要字符串前面加上前缀 u
常用内建函数
内建函数 | 描述 |
---|---|
len(string) | 返回字符串长度 |
count(str, beg= 0,end=len(string)) | 统计子串出现次数 |
encode(encoding=’UTF-8’,errors=’strict’) bytes.decode(encoding=”utf-8”, errors=”strict”) |
编码格式转化 |
find(str, beg=0, end=len(string))/rfind index(str, beg=0, end=len(string))/ rindex |
寻找子串 find失败返回-1,index失败抛出异常,成功都是返回下标 |
isdigit() isnumeric() |
字符串是否只包含数字/数字字符 |
join(seq) | 序列中转字符串,以指定的字符连接 |
replace(old, new, max) | 字符串替换 |
startswith(substr, beg=0,end=len(string)) | 检查字符串开头 |
upper() / lower() | 大/小写转换 |
split(str=””, num=string.count(str)) / splitlines() | 字符串分割 |
列表(List)
初始化
1 | list = [ 'runoob', 786 , 2.23, 'john', 70.2 ] |
[]
操作列表
1 | print(list[2]) #访问 |
列表函数&方法
方法 | 描述 |
---|---|
list.append(obj) | 在列表末尾添加新的对象 |
list.count(obj) | 统计某个元素在列表中出现的次数 |
list.extend(seq) | 用新列表扩展原来的列表 |
list.insert(index, obj) | 将对象插入列表 |
list.pop(index=-1) | 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 |
list.remove(obj) | 移除列表中某个值的第一个匹配项 |
list.reverse() | 反向列表中元素 |
list.sort( key=None, reverse=False) | 对原列表进行排序 |
list.clear() | 清空列表 |
元组(Tuple)
元组用 ()
标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表
1 | tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 ) |
集合(Set)
可以使用大括号 { }
或者 set()
函数创建集合,注意:创建一个空集合必须用 set()
而不是 { }
,因为 { }
是用来创建一个空字典
1 | sites = {'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu'} |
字典(Dictionary)
字典用{ }
标识。字典的每个键值 key=>value 对用冒号 : 分割
1 | dict = {} |
删除字典元素
1 | del tinydict['Name'] # 删除键 'Name' |
字典内置方法
方法 | 描述 |
---|---|
dict.clear() | 删除字典内所有元素 |
dict.fromkeys() | 序列生成字典的key |
key in dict/dict.get(key, default=None) | 查找key |
dict.items() | 以列表返回一个视图对象 |
dict.keys() | 返回所有key |
dict.values() | 返回所有value |
dict.update(dict2) | 把字典dict2的键/值对更新到dict里 |
popitem() | 返回并删除字典中的最后一对键和值 |
pop(key,default) | 删除字典 key(键)所对应的值,返回被删除的值。 |
迭代器与生成器
迭代器
迭代器有两个基本的方法:iter()
和 next()
,next()抛出异常StopIteration,作为结束信号
字符串,列表或元组对象都可用于创建迭代器
1 | list=[1,2,3,4] |
类实现迭代
在类中实现两个方法__iter__()
与__next__()
__iter__()
:返回一个特殊的迭代器对象(不是原来那个类,类似C++中string::iterator), 这个迭代器对象实现了__next__()
方法并通过 StopIteration
异常标识迭代的完成。
__next__()
:返回下一个迭代器对象
生成器
在 Python 中,使用了 yield 的函数被称为生成器,生成器是一个返回迭代器的函数,只能用于迭代操作
在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。
1 | #!/usr/bin/python3 |
推导式
Python 推导式是一种独特的数据处理方式,可以从一个数据序列构建另一个新的数据序列的结构体。
列表(list)推导式
1 | ''' |
字典(dict)推导式
1 | ''' |
集合(set)推导式
1 | ''' |
元组(tuple)推导式
1 | ''' |