简介
不可变类型
Number(数字)、String(字符串)、Tuple(元组);可变数据类型
List(列表)、Dictionary(字典)、Set(集合)。
数值类型
数值的除法包含两个运算符:/
返回一个浮点数,//
返回一个整数。
在混合计算时,Python会把整型转换成为浮点数。
int(整数)
通常被称为是整型或整数,是正或负整数,不带小数点。Python3 整型是没有限制大小的,可以当作 Long 类型使用。
- 十六进制和八进制
1 | # 十六进制 |
bool(布尔)
bool类型只有True或False
float(浮点数)
浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 10^2 = 250)
complex(复数)
复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
数学函数
函数 | 描述 |
---|---|
abs(x) |
返回数字的绝对值,如abs(-10) 返回 10 |
ceil(x) |
返回数字的上入整数,如math.ceil(4.1) 返回 5 |
cmp(x, y) |
如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。 Python 3 已废弃 。使用 使用 (x>y)-(x<y) 替换。 |
exp(x) |
返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045 |
fabs(x) |
返回数字的绝对值,如math.fabs(-10) 返回10.0 |
floor(x) |
返回数字的下舍整数,如math.floor(4.9)返回 4 |
log(x) |
如math.log(math.e)返回1.0,math.log(100,10)返回2.0 |
log10(x) |
返回以10为基数的x的对数,如math.log10(100)返回 2.0 |
max(x1, x2,...) |
返回给定参数的最大值,参数可以为序列。 |
min(x1, x2,...) |
返回给定参数的最小值,参数可以为序列。 |
modf(x) |
返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。 |
pow(x, y) |
x**y 运算后的值。 |
round(x [,n]) |
返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。 |
sqrt(x) |
返回数字x的平方根。 |
随机数函数
函数 | 描述 |
---|---|
choice(seq) |
从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。 |
randrange([start,] stop [,step]) |
从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1 |
random() |
随机生成下一个实数,它在[0,1)范围内。 |
seed([x]) |
改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。 |
shuffle(lst) |
将序列的所有元素随机排序 |
uniform(x, y) |
随机生成下一个实数,它在[x,y]范围内。 |
三角函数
函数 | 描述 |
---|---|
acos(x) |
返回x的反余弦弧度值。 |
asin(x) |
返回x的反正弦弧度值。 |
atan(x) |
返回x的反正切弧度值。 |
atan2(y, x) |
返回给定的 X 及 Y 坐标值的反正切值。 |
cos(x) |
返回x的弧度的余弦值。 |
hypot(x, y) |
返回欧几里德范数 sqrt(xx + yy)。 |
sin(x) |
返回的x弧度的正弦值。 |
tan(x) |
返回x弧度的正切值。 |
degrees(x) |
将弧度转换为角度,如degrees(math.pi/2) , 返回90.0 |
radians(x) |
将角度转换为弧度 |
数学常量
常量 | 描述 |
---|---|
pi |
数学常量 pi(圆周率,一般以π来表示) |
e |
数学常量 e,e即自然常数(自然常数)。 |
字符串(String)
- python中单引号
'
和双引号"
使用完全相同。 - 使用三引号
''
‘或"""
可以指定一个多行字符串。 - 转义符
\
- 反斜杠可以用来转义,使用r可以让反斜杠不发生转义。
- 按字面意义级联字符串,如”this “ “is “ “string”会被自动转换为this is string。
- 字符串可以用
+
运算符连接在一起,用*
运算符重复多次。 - Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
- Python中的字符串不能改变,每次字符连接或赋值如果字符串没出现过都会产生新的字符串。
- Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。
- 字符串的截取的语法格式:变量[头下标:尾下标:步长]
1 | # python中单引号`'`和双引号`"`使用完全相同。 |
格式化
- 占位符
符号 | 描述 |
---|---|
%c |
格式化字符及其ASCII码 |
%s |
格式化字符串 |
%d |
格式化整数 |
%u |
格式化无符号整型 |
%o |
格式化无符号八进制数 |
%x |
格式化无符号十六进制数 |
%X |
格式化无符号十六进制数(大写) |
%f |
格式化浮点数字,可指定小数点后的精度 |
%e |
用科学计数法格式化浮点数 |
%E |
作用同%e,用科学计数法格式化浮点数 |
%g |
%f和%e的简写 |
%G |
%f 和 %E 的简写 |
%p |
用十六进制数格式化变量的地址 |
1 | print("int value is %d" % 111) # int value is 111 |
- 样式符
符号 | 描述 |
---|---|
* |
定义宽度或者小数点精度 |
- |
用做左对齐 |
+ |
在正数前面显示加号( + ) |
<sp> |
在正数前面显示空格 |
# |
在八进制数前面显示零(‘0’),在十六进制前面显示’0x’或者’0X’(取决于用的是’x’还是’X’) |
0 |
显示的数字前面填充’0’而不是默认的空格 |
% |
‘%%’输出一个单一的’%’ |
(var) |
映射变量(字典参数) |
m.n. |
m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) |
1 | print ("Name:%10s Age:%8d Height:%8.2f"%("abc",28,1.70)) # Name: abc Age: 28 Height: 1.70 |
内建函数
函数 | 描述 |
---|---|
capitalize() |
将字符串的第一个字符转换为大写 |
center(width, fillchar) |
返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。 |
count(str, beg= 0,end=len(string)) |
返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数 |
bytes.decode(encoding="utf-8", errors="strict") |
Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。 |
encode(encoding='UTF-8',errors='strict') |
以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是’ignore’或者’replace’ |
endswith(suffix, beg=0, end=len(string)) |
检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False. |
expandtabs(tabsize=8) |
把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。 |
find(str, beg=0 end=len(string)) |
检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1 |
index(str, beg=0, end=len(string)) |
跟find()方法一样,只不过如果str不在字符串中会报一个异常. |
isalnum() |
如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False |
isalpha() |
如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False |
isdigit() |
如果字符串只包含数字则返回 True 否则返回 False.. |
islower() |
如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False |
isnumeric() |
如果字符串中只包含数字字符,则返回 True,否则返回 False |
isspace() |
如果字符串中只包含空白,则返回 True,否则返回 False. |
istitle() |
如果字符串是标题化的(见 title())则返回 True,否则返回 False |
isupper() |
如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False |
join(seq) |
以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串 |
len(string) |
返回字符串长度 |
ljust(width[, fillchar]) |
返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。 |
lower() |
转换字符串中所有大写字符为小写. |
lstrip() |
截掉字符串左边的空格或指定字符。 |
maketrans() |
创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。 |
max(str) |
返回字符串 str 中最大的字母。 |
min(str) |
返回字符串 str 中最小的字母。 |
replace(old, new [, max]) |
把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。 |
rfind(str, beg=0,end=len(string)) |
类似于 find()函数,不过是从右边开始查找. |
rindex( str, beg=0, end=len(string)) |
类似于 index(),不过是从右边开始. |
rjust(width,[, fillchar]) |
返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串 |
rstrip() |
删除字符串字符串末尾的空格. |
split(str="", num=string.count(str)) |
以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串 |
splitlines([keepends]) |
按照行(‘\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。 |
startswith(substr, beg=0,end=len(string)) |
检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。 |
strip([chars]) |
在字符串上执行 lstrip()和 rstrip() |
swapcase() |
将字符串中大写转换为小写,小写转换为大写 |
title() |
返回”标题化”的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle()) |
translate(table, deletechars="") |
根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中 |
upper() |
转换字符串中的小写字母为大写 |
zfill (width) |
返回长度为 width 的字符串,原字符串右对齐,前面填充0 |
isdecimal() |
检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。 |
列表(List)
- 列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
- 列表是写在方括号
[]
之间、用逗号分隔开的元素列表。 - 和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
- List中的元素是可以改变的。
- 列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表
1 | list1 = [123, 'abc'] |
删除列表元素
可以使用 del 语句来删除列表的的元素
1 | list = ['11', '22', "33", "44"] |
列表推导式
列表推导式提供了从序列创建列表的简单途径。通常应用程序将一些操作应用于某个序列的每个元素,用其获得的结果作为生成新列表的元素,或者根据确定的判定条件创建子序列。
每个列表推导式都在 for 之后跟一个表达式,然后有零到多个 for 或 if 子句。返回结果是一个根据表达从其后的 for 和 if 上下文环境中生成出来的列表。
1 | #!/usr/bin/python3 |
列表遍历
在遍历列表时,索引位置和对应值可以使用 enumerate() 函数解析获得。
1 | #!/usr/bin/python3 |
同时遍历两个或更多的列表时,可以使用 zip() 组合
1 | #!/usr/bin/python3 |
全局方法
函数 | 描述 |
---|---|
len(list) |
列表元素个数 |
max(list) |
返回列表元素最大值 |
min(list) |
返回列表元素最小值 |
list(seq) |
将元组转换为列表 |
成员方法
函数 | 描述 |
---|---|
list.append(obj) |
在列表末尾添加新的对象 |
list.count(obj) |
统计某个元素在列表中出现的次数 |
list.extend(seq) |
在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
list.index(obj) |
从列表中找出某个值第一个匹配项的索引位置 |
list.insert(index, obj) |
将对象插入列表 |
list.pop([index=-1]) |
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 |
list.remove(obj) |
移除列表中某个值的第一个匹配项 |
list.reverse() |
反向列表中元素 |
list.sort( key=None, reverse=False) |
对原列表进行排序 |
list.clear() |
清空列表 |
list.copy() |
复制列表 |
元组(Tuple)
- 元组(tuple)元素不能修改。
- 元组中的元素类型也可以不相同
- 元组写在小括号
()
里,元素之间用逗号隔开。 - 元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。
1 | t1 = (123, 'abc') |
构造0或1个元素的元组
1 | t1 = () # 空元组 |
删除元组元素
元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组
1 | tup = ('111', '222', "333", "444") |
内置函数
函数 | 描述 |
---|---|
len(tuple) |
计算元组元素个数。 |
max(tuple) |
返回元组中元素最大值。 |
min(tuple) |
返回元组中元素最小值。 |
tuple(seq) |
将列表转换为元组。 |
集合(Set)
- 可以使用大括号
{ }
或者set()
函数创建集合 - 集合(set)是一个无序的不重复元素序列。
- 创建一个空集合必须用
set()
而不是{ }
,{ }
是用来创建一个空字典。 - set的元素可以是不同的类型。
-
用来计算2个集合的差集+
用来计算2个集合的并集&
用来计算2个集合的交集^
用来计算2个集合都不存在的元素
基本功能是进行成员关系测试和删除重复元素。
1 | s1 = set('123456') |
判断元素是否在集合中存在
判断某个元素是否在集合里面使用in
1 | set1 = set(("111", "222", "333")) |
内置函数
函数 | 描述 |
---|---|
add() |
为集合添加元素 |
clear() |
移除集合中的所有元素 |
copy() |
拷贝一个集合 |
difference() |
返回多个集合的差集 |
difference_update() |
移除集合中的元素,该元素在指定的集合也存在。 |
discard() |
删除集合中指定的元素 |
intersection() |
返回集合的交集 |
intersection_update() |
删除集合中的元素,该元素在指定的集合中不存在。 |
isdisjoint() |
判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。 |
issubset() |
判断指定集合是否为该方法参数集合的子集。 |
issuperset() |
判断该方法的参数集合是否为指定集合的子集 |
pop() |
随机移除元素 |
remove() |
移除指定元素 |
symmetric_difference() |
返回两个集合中不重复的元素集合。 |
symmetric_difference_update() |
移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。 |
union() |
返回两个集合的并集 |
update() |
给集合添加元素 |
全局函数
函数 | 描述 |
---|---|
len(s) |
计算集合 s 元素个数。 |
字典(Dictionary)
- 字典是无序的对象集合
- 字典当中的元素是通过键来存取的,而不是通过偏移存取。
- 字典是一种映射类型,字典用
{ }
标识,它是一个无序的 键(key) : 值(value) 的集合。 - 键(key)必须使用不可变类型。且不能重复
- 在同一个字典中,键(key)必须是唯一的。
- 创建空字典使用 { }。
- 不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住
- 键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行
1 | d1 = {} |
删除字典元素
显示删除一个字典用del
字典遍历
字典遍历的时候使用成员方法items
解析出k和v。
1 | #!/usr/bin/python3 |
全局方法
函数 | 描述 |
---|---|
len(dict) |
计算字典元素个数,即键的总数。 |
str(dict) |
输出字典,以可打印的字符串表示。 |
type(variable) |
返回输入的变量类型,如果变量是字典就返回字典类型。 |
成员方法
函数 | 描述 |
---|---|
dict.clear() |
删除字典内所有元素 |
dict.copy() |
返回一个字典的浅复制 |
dict.fromkeys() |
创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 |
dict.get(key, default=None) |
返回指定键的值,如果值不在字典中返回default值 |
key in dict |
如果键在字典dict里返回true,否则返回false |
dict.items() |
以列表返回可遍历的(键, 值) 元组数组 |
dict.keys() |
返回一个迭代器,可以使用 list() 来转换为列表 |
dict.setdefault(key, default=None) |
和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
dict.update(dict2) |
把字典dict2的键/值对更新到dict里 |
dict.values() |
返回一个迭代器,可以使用 list() 来转换为列表 |
dict.pop(key[,default]) |
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。 |
dict.popitem() |
随机返回并删除字典中的一对键和值(一般删除末尾对)。 |
类型判断
type
内置的 type() 函数可以用来查询变量所指的对象类型。不会认为子类是一种父类类型。
1 | a, b, c, d, e = 20, -1.1, True, 4+3j, "eee" |
isinstance
会认为子类是一种父类类型。
区别
isinstance会判断亲属类型
1 | class A: |
类型转换
函数 | 描述 |
---|---|
int(x [,base]) |
将x转换为一个整数 |
float(x) |
将x转换到一个浮点数 |
complex(real [,imag]) |
创建一个复数 |
str(x) |
将对象 x 转换为字符串 |
repr(x) |
将对象 x 转换为表达式字符串 |
eval(str) |
用来计算在字符串中的有效Python表达式,并返回一个对象 |
tuple(s) |
将序列 s 转换为一个元组 |
list(s) |
将序列 s 转换为一个列表 |
set(s) |
转换为可变集合 |
dict(d) |
创建一个字典。d 必须是一个序列 (key,value)元组。 |
frozenset(s) |
转换为不可变集合 |
chr(x) |
将一个整数转换为一个字符 |
ord(x) |
将一个字符转换为它的整数值 |
hex(x) |
将一个整数转换为一个十六进制字符串 |
oct(x) |
将一个整数转换为一个八进制字符串 |