一、数字类型
Python 数字数据类型用于存储数值。数据类型是不允许改变,如改变数字数据类型的值,将重新分配内存空间。
1.数字函数
函数 | 描述 |
abs(x) | 返回数字的绝对值。如abs(-10) 返回 10。 |
fabs(x) | 返回x的绝对值(float类型)。 如math.fabs(-5) 返回 5。 |
max(x) | 返回给定参数的最大值,参数可以为序列。如max(1,2,3)返回 3。 |
min(x) | 返回给定参数的最小值,参数可以为序列。如min(1,2,3) 返回1。 |
ceil(x) | 返回数字的向上整数。如math.ceil(4.1) 返回 5。 |
floor(x) | 返回数字的下舍整数。如math.floor(4.9)返回 4。 |
gcd(x,y) | 返回x和y的最大公约数。如math.gcd(3,6) 返回3。 |
divmod(x,y) | 返回x除以y的商和余数。 如divmod(10,3) 返回(3, 1)。 |
round(x[,n]) | 返回浮点数 x 的四舍五入值,如给出 n 值,则舍入到小数点后的位数。 保留值将保留到离上一位更近的一端。如round(1.2345,2)返回1.23。 |
pow(x,y) | x**y 运算后的值。如pow(2,3)返回8,等同于2^3=8。 |
sqrt(x) | matt.sqrt()返回数字x的平方根。如math.sqrt(100)返回10.0。 |
factorial(x) | 返回x阶乘的值 如math.factorial(3) 返回 6。 |
fsum(x) | 返回迭代器里每个元素之和。 如x = (1,2,3) math.fsum(x) 返回 6.0。 |
sum(x) | 返回迭代器x里每个元素之和。如sum(1,2,3) 返回 6。 |
prod(x) | 返回迭代器x里每个元素之积。如prod(2,3,4) 返回 24。 |
log(x) | 返回x的自然对数。如math.log(math.e)返回1.0,math.log(100,10)返回2.0。 |
log10(x) | 返回以10为基数的x的对数。如math.log10(100)返回 2.0。 |
exp(x) | 返回e的x次幂。如math.exp(1) 返回2.718281828459045。 |
modf(x) | math.modf()返回x的整数部分与小数部分,两部分的数值符号与x相同, 整数部分以浮点型表示。如math.modf(1.23) 返回(0.22999......, 1.0)。 |
2.随机函数
函数 | 描述 |
random() | 在[0,1)范围内随机生成一个浮点数。 如random.random()。 |
uniform(x,y) | [x,y]范围内随机生成一个浮点数。 如random.uniform(3,5)。 |
randint(x,y) | 在指定范围内随机一个整数。 如random.randint(1,10)。 |
randrange([start,] stop [,step]) | 指定范围内按指定基数递增集合中获取一个随机数,默认值为 1。 start -- 指定范围内的开始值,包含在范围内。 stop -- 指定范围内的结束值,不包含在范围内。 step -- 指定递增基数。 如random.randrange(1, 100, 2)从 1-100 中选取一个奇数。 |
choice(x) | 从序列x中随机挑选一个元素,x --可以是一个列表、元组、字符串。 如random.choice(range(10)),从0到9中随机挑选一个整数。 |
sample(x,y) | 从序列中随机指定个数的元素。 如x = [1,2,3,4,5],random.sample(x,3)。 |
seed([x]) | 改变随机数生成器种子,需在调用其他随机函数前调用此函数。 如random.seed(8),提前指定种子数字为8。 |
shuffle(x) | 将序列x的所有元素随机排序。 如random.shuffle(x)。 |
3.数字常量
常量 | 描述 |
pi | 数学常量 pi(圆周率,一般以π来表示 3.1415926......)。如math.pi。 |
e | 数学常量 e,e即自然常数(自然常数 2.7182818......)。如math.e。 |
二、字符类型
字符串是 Python 中最常用数据类型。字符串是使用一对英文单引号(')或英文双引号(")包裹的任意文本,可用(''')三引号包裹多行字符串,也可\n实现字符串换行。创建字符串很简单,只要为变量分配一个值即可。例如:'Hello World!'。
注意:
字符串不可以“增删改”操作,但可以通过字符拼接来实现“增删改”操作。
1.字符函数
序号 | 函数名 | 方法及描述 |
1 | len(x) | 返回字符串长度。 x = 'hello',len(x),返回5。 |
2 | upper() | 转换字符串中的小写字母为大写。 x = 'hello',x.upper(),返回HELLO。 |
3 | lower() | 转换字符串中所有大写字符为小写。 x = 'HELLO',x.lower(),返回hello。 |
4 | capitalize() | 将字符串x的第一个字符转换为大写。 x = 'hello world!' x.capitalize(),返回 Hello world!。 |
5 | title() | "标题化"的字符串,所有单词都是以大写开始,其余字母均为小写。 x = 'hello world',x.title(),Hello World。 |
6 | swapcase() | 将字符串中大写转换为小写,小写转换为大写。 x = 'hEllO',x.swapcase(),返回HeLLo。 |
7 | max(x) | 无论字符串 x 中是否有大写字母, 都会返回字符串 x 中小写字母最大的字母, 可以理解为ascii码表中最大十进制编号字母。 x = 'abcde',max(x),返回e。 x = 'aBcde',max(x),返回e。 |
8 | min(x) | 当字符串 x 中有大写字母返回最小大写字母, 否则返回字符串 x 中最小的字母, 可以理解为ascii码表中最小十进制编号字母。 x = 'aBcde',min(x),返回B。 x = 'abcde',min(x),返回a。 |
9 | split() | split(str="", num=string.count(str)) 以 str 为分隔符截取字符串,如果 num 有指定值, 则仅截取 num+1 个子字符串。 x = 'h,e,l,l,o',x.split(',')返回['h', 'e', 'l', 'l', 'o']。 |
10 | rsplit() | rsplit(str="", num=string.count(str)) 以 str 为分隔符从右边截取字符串,如果 num 有指定值, 则仅截取 num+1 个子字符串。 x = 'h,e,l,l,o',x.rsplit(',',2)返回['h, e, l', 'l', 'o']。 |
11 | rpartition() | 指定字符串最后一次出现,并将该字符串拆分为包含三个元素的元组。 x = 'hello',x.rpartition('l'),返回('hel', 'l', 'o') |
12 | find(x) | find(str, beg=0, end=len(string)) 则检查是否包含指定范围内,如果包含返回开始索引值,否则返回-1。 x = 'hello world' x.find('l')返回2;x.find('l',5)返回9。 |
13 | rfind() | rfind(str, beg=0,end=len(string)) x = 'hello',x.rfind('l'),返回3,x.rfind('l',0,3)返回2。 |
14 | index(x) | index(str, beg=0, end=len(string)) x = 'hello world' x.index('l')返回2; x.index('l',5)返回9。 |
15 | rindex() | rindex( str, beg=0, end=len(string)) x = 'hello',x.rindex('l'),返回3,x.rindex('l',0,3)返回2。 |
16 | center(x,y) | 返回一个指定的宽度 x 居中的字符串,y 为填充的字符,默认为空格。 x = '漫步桔田' x.center(10,'*') ,返回 ***漫步桔田***。 |
17 | ljust() | ljust(width[, fillchar]) 填充至长度 width 的新字符串,fillchar 默认为空格。 x = 'hello',x.ljust(8,'*'),返回hello***。 |
18 | rjust() | rjust(width,[, fillchar]) 返回一个原字符串右对齐,并使用fillchar (默认空格)填充至长度 width 的新字符串。 x = 'hello',x.rjust(8,'*'),返回***hello。 |
19 | count(x) | count(x, beg= 0,end=len(string)) x = 'Hello' x.count('l') 返回 2;x.count('l',3)返回 1 。 |
20 | replace() | replace(old, new [, max]) x = 'aacc',x.replace('c','b'),返回aabb, x.replace('c','b',1),返回aabc。 |
21 | join(x) | join(x)以指定字符作为分隔符,将 x 中所有元素合并为一个新字符串。 x = 'hello' '*'.join(x) ,返回h*e*l*l*o。 |
22 | decode() | decode(encoding="utf-8", errors="strict") encoding - 要使用的编码,如"UTF-8" errors - 参数可以指定不同的错误处理方案 decode() 用来解码给定的 bytes 对象。 x = b'\xe6\xbc\xab\xe6\xad\xa5' x.decode('utf-8') 返回'漫步'。 |
23 | encode() | encode(encoding='UTF-8',errors='strict') errors参数可以指定不同的错误处理方案 以 encoding 指定的编码格式编码字符串。 x = '漫步'x.encode('utf-8') 返回 b'\xe6\xbc\xab\xe6\xad\xa5'。 |
24 | zfill() | 返回长度为 width 的字符串,原字符串右对齐,前面填充0。 x = 'hello',x.zfill(10),返回00000hello。 |
25 | lstrip() | 截掉字符串左边的空格或指定字符。 x = ' HELLO',x.lstrip(),返回HELLO。 |
26 | rstrip() | 删除字符串末尾的空格或指定字符。 x = 'hello***',x.rstrip('*'),返回hello。 |
27 | strip() | 在字符串上执行 lstrip()和 rstrip()。 x = '**hello**',x.strip('*'),返回hello。 |
28 | splitlines(x) | 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表, 如果参数 x 为 False,不包含换行符,如果为 True,则保留换行符。 '12\r34\r\n56\n78'.splitlines(),返回['12', '34', '56', '78']。 |
29 | expandtabs() | expandtabs(tabsize=8) expandtabs() 方法把字符串中的 tab 符号 \t 转为空格, tab 符号 \t 默认的空格数是 8,在第 0、8、16...等处给出制表符位置, 如制表符位置字符数不足 8 倍数则以空格代替。 x = 'hello\tworld' x.expandtabs() 返回hello world补充3个空格。 |
30 | startswith() | startswith(x, beg=0,end=len(string)) 检查字符串是否是以指定子字符串 x 开头, 是则返回 True,否则返回 False。 如果beg 和 end 指定值,则在指定范围内检查。 x = 'hello',x.startswith('h'),返回True。 |
31 | endswith() | endswith(x, beg=0, end=len(string)) 检查字符串是否以 x 结尾,如果 beg 和 end 指定则检查指定范围内 是否以 suffix 结束,如果是,返回 True,否则返回 False。 x = 'hello' x.endswith('o')返回True;x.endswith('l',0,3)返回True。 |
32 | isalnum() | 如果字符串不为空并且所有字符都是字母或数字, 则返回 True,否则返回 False。 x = 'hello world' x.isalnum()返回False。 |
33 | isalpha() | 如果字符串不为空且所有字符都是字母或中文字, 则返回 True, 否则返回 False。 x = 'hello漫步' x.isalpha()返回 True。 |
34 | isdigit() | 如果字符串只包含数字则返回 True 否则返回 False。 x = '123456' x.isdigit(),返回 True。 |
35 | isnumeric() | 如果字符串中只包含数字字符,则返回 True,否则返回 False。 x = '123456' x.isnumeric() 返回 True。 |
36 | isdecimal() | 检查字符串是否只包含十进制字符,如果是返回 True,否则返回 false。 x = '123',x.isdecimal(),返回True。 |
37 | isupper() | 如果字符串中所有字符都是大写,则返回 True,否则返回 False。 x = 'HELLO WORLD ' x.isupper(),返回 True。 |
38 | islower() | 如果字符串中所有字符都是小写,则返回 True,否则返回 False。 x = 'Hello' x.islower() 返回 False。 |
39 | istitle() | 如果字符串所有单词首字母大写则返回 True,否则返回 False。 x = 'Hello World ' x.istitle(),返回 True。 |
40 | isspace() | 如果字符串中只包含空格,则返回 True,否则返回 False。 x = ' ' x.isspace(),返回 True。 |
2.字符切片
x = 'hello' # 所有字符串切片都返回新值print(x[3]) # l 查询字符串下标为3的元素print(x[0:]) # hello 查询字符串下标为0到末尾的元素print(x[:4]) # hell 查询字符串下标0到下标为(n-1)的元素print(x[1:]) # ello 查询字符串下标为1到末尾的元素print(x[1:4]) # ell 查询字符串下标1到下边为(n-1)的元素print(x[-4:-1]) # ell 查询字符串下标为-4到-1的元素print(x[-3:4]) # ll 查询字符串下标为-3到4的元素print(x[-2:]) # lo 查询字符串下标为-2到末尾的元素
3.字符运算
操作符 | 方法及描述 |
+ | 字符串拼接。 x = 'hello' y = 'world' , x+y = helloworld。 |
* | 字符串乘接。 x = 'hello', x*2 = hellohello。 |
[] | 通过索引获取字符串中字符。 x = 'hello', x[1] = e。 |
[ : ] | 截取字符串,遵循左闭右开原则。 x[0:2] 只包含下标0,1元素,不包含下标2元素。 |
in | 如果字符串中包含给定的字符返回True,否则返回False。 x = 'hello' ,'h' in x 返回True。 |
not in | 如果字符串中不包含给定的字符返回True ,否则返回False。 x = 'hello' ,'h' not in x,返回False。 |
r/R | 在字符串前加 r / R 主要是将字符串按原始字符定义,不会被转义符转义。 x = r'he\t\nllo' 或 R'he\t\nllo',返回he\t\nllo |
% | 格式字符串。 '我叫 %s 今年 %d 岁。' % ('漫漫', 21) 返回 我叫 漫漫 今年 21 岁。 |
4.字符格式(%)
符号 | 方法及描述 |
%c | 格式化字符及其ASCII码。 '我是字母 %c 。' % (97) ,返回我是字母 a 。 |
%s | 格式化字符串。 '我的年龄 %s 。' % (21) ,返回我的年龄 21 。 |
%d | 格式化整数。 '我的年龄 %d 。' % (21),返回我的年龄 21 。 |
%u | 格式化无符号整型。 '我的年龄 %u。' % (21),返回我的年龄 21 。 |
%i | 格式化无符号十进制数。 '我的年龄 %i。' % (21),返回我的年龄 21 。 |
%o | 格式化无符号八进制数。 '我的年龄 %o。' % (21),返回我的年龄 25 。 |
%x %X | 格式化无符号十六进制数。 '我的年龄 %x。' % (15),返回我的年龄 f / F 。 |
%f %F | 将整数、浮点数转换浮点数表示,其格式化到指定位置(默认保留小数点后6位)。 '我的体重 %.2f。' % (100.126),,返回我的体重 100.13。 |
%e %E | 将整数、浮点数转换成科学计数法,并将其格式化到指定位置。 '我的体重 %.2e。' % (100.126) ,返回我的体重 1.00e+02。 |
%g %G | 自动将整数、浮点数转换浮点或科学计数法表示(超过6位数用科学计数法), 并将其格式化到指定位置(如果是科学计数则是e)。 '我的体重 %.2g。' % (1.001260e+02),返回我的体重 100.126。 |
%% | 字符"%" 。 '我的体脂 %d%%。'%18 ,返回我的体脂 18%。 |
注意:
%[(name)][flags][width].[precision] typecode
(name):参数名称,用来传入字典值的,(传入参数必须是字典);
flags:作为用户对一些格式的选择,只有固定的几个值,以下
+ 右对齐:正数前加正好,负数前加负号;
- 左对齐:正数前无符号,负数前加负号;
' ' 右对齐:正数前加空格,负数前加负号;
0 右对齐:正数前无符号,负数前加负号;用0填充空白处
width:表示显示宽度,如果设置宽度低于实际字符宽度时,会按照实际的宽度来输出
如果设置宽度高于字符宽度时,会按照设置的宽度输出,空白符自动补位,右对齐。
precision:表示小数点后精度
typecod:用于指定输出类型(%s、%d、%f)。
5.字符格式(format)
数字 | 格式 | 输出 | 描述 |
3.1415926 | {:.2f} | 3.14 | 保留小数点后两位 |
3.14159/-1 | {:+.2f} | +3.14/-1.00 | 带符号保留小数点后两位 |
2.71828 | {:.0f} | 3 | 不带小数 |
5 | {:0>2d} | 05 | 数字补零 (填充左边, 宽度为2) |
5/10 | {:x<4d} | 5xxx/10xx | 数字补x (填充右边, 宽度为4) |
1000000 | {:,} | 1,000,000 | 以逗号分隔的数字格式 |
0.25 | {:.2%} | 25.00% | 百分比格式 |
1000000000 | {:.2e} | 1.00e+09 | 科学计数法(1*10^9) |
13 | {:>10d} | 13 | 右对齐 (默认, 宽度为10) |
13 | {:<10d} | 13 | 左对齐 (宽度为10) |
13 | {:^10d} | 13 | 中间对齐 (宽度为10) |
11 | {:b}.format(11) {:d}.format(11) {:o}.format(11) {:x}.format(11) {:#x}.format(11) {:#X}.format(11) | 1011 11 13 b 0xb 0XB | 进制 |
注意:
^, <, > 分别是居中、左对齐、右对齐,后面带宽度;
: 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充;
+ 表示在正数前显示 +,负数前显示 -;
(空格)表示在正数前加空格
b、d、o、x 分别是二进制、十进制、八进制、十六进制。
三、列表类型
列表用英文 中括号 [] 把里面的所有数据框起来,列表里面的每一个数据叫作元素。每个元素之间都要用 英文逗号 ( , ) 隔开。例如:[1,2,3]。
1.列表函数
序号 | 函数名 | 方法及描述 |
1 | len(x) | 列表元x素个数。 x = [1,2,3,4,5], len(x), 返回 5。 |
2 | max(x) | 返回列表x元素最大值。 x = [1,2,3,4,5],max(x) ,返回 5。 |
3 | min(x) | 返回列表x元素最小值。 x = [1,2,3,4,5],min(x) ,返回 1。 |
4 | list(x) | 将序列x转换为列表。 x = (1,2,3,4,5), list(x), 返回 [1,2,3,4,5]。 |
5 | append(x) | 在列表末尾添加新的对象。 x = [1,2,3,4,5],x.append(6),返回 x [1, 2, 3, 4, 5, 6]。 |
6 | count(x) | 统计某个元素在列表中出现的次数。 x = [1,2,3,3,5],x.count(3),返回 2。 |
7 | extend(x) | 在列表末尾一次性追加另一个序列(用新列表扩展原来的列表)。 x = [1,2,3],y = [4,5,6],x.extend(y),返回 x = [1, 2, 3, 4, 5, 6]。 |
8 | index(x) | 从列表中找出某个值第一个匹配项的索引位置。 x = [1,2,3],x.index(3),返回 2。 |
9 | insert(x,y) | 将对象插入列表,x.insert(index, obj) |
10 | pop(x) | 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。 x = [1,2,3,4,5],x.pop(),返回 x = [1, 2, 3, 4]。 x = [1,2,3,4,5],x.pop(3),返回 x = [1, 2, 3, 5]。 |
11 | del | 移除列表中指定位置元素。 x = [1, 2, 3 ,4, 5],del x[3],返回 x = [1, 2, 3, 5]。 |
12 | remove(x) | 移除列表中某个值的第一个匹配项。 x = [1,2,3,3,5],x.remove(3),返回 x = [1, 2, 3, 5]。 |
13 | reverse(x) | 反向排列列表中元素 。 x = [1,2,3,4,5],x.reverse(),返回 x = [5, 4, 3, 2, 1]。 |
14 | sort(x) | 对原列表进行排序,list.sort( key=None, reverse=False)。 key - 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。 reverse - 规则,reverse = True 降序, reverse = False 升序(默认)。 x = [2,1,4,3,5],x.sort() 返回 x = [1, 2, 3, 4, 5]。 x.sort(reverse=True),返回 x = [5, 4, 3, 2, 1]。 |
15 | clear(x) | 清空列表 。 x = [1,2,3,4,5],x.clear(),返回 x = []。 |
16 | copy(x) | 复制列表 。 x = [1,2,3,4,5],y = x.copy(),返回 y = [1,2,3,4,5]。 |
2.列表切片
x = [1, 2, 3, 4, 5, 6]print(x[2]) # 3 查找列表下标为2的元素print(x[-2]) # 5 查找列表倒数第2个元素print(x[:]) # [1, 2, 3, 4, 5, 6] 查找列表下标为0到末尾的元素print(x[::2]) # [1, 3, 5] 查找列表下标0到末尾间隔为2的元素print(x[:5]) # [1, 2, 3, 4, 5] 查找列表下标为0到5的元素print(x[1:]) # [2, 3, 4, 5, 6] 查找列表下标为1到末尾的元素print(x[1:-2]) # [2, 3, 4] 查找列表下标1的到倒数第2个间的元素print(x[-5:-3]) # [2, 3] 查找列表倒数第5到倒数第3间的元素x[3] = 8;print(x) # [1, 2, 3, 8, 5, 6] 根据列表元素下标修改元素值
3.列表运算
x = [1, 2, 3]y = [4, 5, 6]print(len(x)) # 3 计算列表内元素个数print(x + y) # [1, 2, 3, 4, 5, 6] 列表x和列表y拼接print(x*2) # [1, 2, 3, 1, 2, 3] 复制指定系数列表xprint(5 in y) # True 判断5是否在列表x内print(5 not in y ) # False 判断5是否不在列表x内print(x!=y) # True 判断列表x和y是否相等
来源地址:https://blog.csdn.net/u013157570/article/details/127765760