#欢迎交流学习
数据:常用函数
表达:列表、元组、集合、字典
目录
一、系统函数
此部分只记载常用函数,比较枯燥 搬砖运动0.0
range()和排序不属于radom!
(一)自带函数
· 指不需要 **引入(import)**模块的函数
1.类型转换 略
2.进制转换函数
二进制 | bin(x) |
八进制 | oct(x) |
十六进制 | hex(x) |
3.max,min,sum | |
4.round([,n])四舍五入函数 |
>>> print(round(12.9),round(12.2341,3))
13 12.234
5.'裸’函数与math函数的关联
功能 | 系统 | math |
---|---|---|
绝对值 | abs() | math.fabs() |
幂函数 | pow(a,b) | math.pow(a,b) |
取整 | int() | math.trunc() |
取余数 | divmod() | math.fmod() |
(二)math函数库
e | math.e |
pi | math.pi |
∞ | math.inf |
平方根 | math. sqrt() |
指数e | math.exp() |
对数 | math.log(a,b) |
取整 | math.trunc() |
向上取整 | math.ceil() |
向下取整 | math.floor() |
目标角度 | math.degrees() |
目标弧度 | math.randians() |
#程序清单2.1 math函数库的应用
#程序清单2.1 math函数库的应用
import math #千万不要忘记import!!
pi=math.pi #一定是要math.pi
a=math.exp(2)
b=2.12355
print('e=',math.sqrt(a))
print('向上向下:',math.ceil(b),math.floor(b))
print('角度弧度:',math.degrees(pi/2),math.radians(90))
c=math.radians(90)
d=c/pi
print('%d pi'%d)
程序清单2.1的运行结果
e= 2.718281828459045
向上向下: 3 2
角度弧度: 90.0 1.5707963267948966
(三)random函数库
随机数
random() [0,1)
randrange(a,b,c) [a,b)步长c
randint(a,b) [a,b] int
uniform(a,b) [a,b] floating-point number
随机选择
choice()选一个
sample(s,n)选n个
随机洗牌
shuffle()
(四)time calendar函数库
算了,吾不想说了
只需主要%Y %y 输出不一样
(五)字符串函数
大小写转换方法
s.capitalize():只对首字母大写 Apple store
s.title():对单词首字母大写 Apple Store
s.swapcase():大小写互换
s.upper() :全大写
s.lowers0: 全小写
查找
利用查找可以快速修改元素
s.count(t[, m[, n]):t在s([m, n))间的出现次数
s.find(t[, m[, n]):t在s首次出现位置,无t返-1
s.index(t[, m[, n]):同find(若t不在s中则出错)
s.rfind(t[, m, o]]):t在s最后出现位置,无t返-1
s.rindex(t[, m[, n]]):同rfind(若t不在s中则出错)
#当查找字符串时,结果为首字符出现位置
>>> 'abcabcabc'.rindex('abc')
6 #当查找字符串时,结果为首字符出现位置
删除
s.remove() 删除指定数据 重复只删除第一个
s.pop():删除指定位置(同样可嵌套index查找)默认最后一个
s.clear():删除所有元素
del s/[]):删除列表或指定位置值
嵌套index示例见程序“列表”
替换
s.replace(u,v[,n]):把u替换为v n次(默认全部)
s.strip([c]):去掉首尾连续的字符串
s.lstrip([c]):首部开始,重复的都替换
s.rstrip([c]):尾部,同理
s.expandtabs([n]):把\t替换为n个空格(默认8)
组合拆分
t.join(s):用t串联s中的内容
s.split(t[,n]):以t为标志拆分n次(默认全部)
s.splitlines():按行拆分
注:拆分函数的标志在字符串中已含有
>>> s='1-22-33-44-55'#split不能用于列表
>>> t='11 22 33 44 55'
>>> print(s.split('-',3),s.split('-'),t.split())
['1', '22', '33', '44-55'] ['1', '22', '33', '44', '55'] ['11', '22', '33', '44', '55']
测试
s.isspace():全为空格
s.isdigit():全为数字
s.isalpha():全为字母
s.isalnum():全为字母与数字
s.istittle():所有词首字母大写
s.isupper():全大写
s.islower():全小写
(六)切片
单独提出来是因为切片可以实现无函数就倒序
>>> s=[1,23,545,6]
>>> t=s[-1::-1] ##########
>>> print(t)
[6, 545, 23, 1]
二.数据结构
毕竟考前突击,所注重对比。将从创建到使用来进行学习,而非序列类型
创建
列表:
[ ],list() 只有这两种
注意事项:
list()中不可直接输入数据,虽然与[]都是创建列表的方法
下面示范list()的正确用法
>>> b=list(1,90,0)
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
b=list(1,90,0)
TypeError: list expected at most 1 argument, got 3
>>> #即list()中不可直接输入数据,虽然与[]都是创建列表的方法
>>> #下面示范list()的正确用法
list()的功能:创建,改造
其他此类一函数方式创建的序列,对应函数都兼具两者
>>> b=list(range(10))
>>> b=list(range(10)) #创建列表
>>> c=list('abc123') #将字符串变为列表
>>> d=list(('a','b','c','d',1,2,3)) #将元组改为列表
>>> print(b,c,d,sep='\n')
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
['a', 'b', 'c', '1', '2', '3']
['a', 'b', 'c', 'd', 1, 2, 3]
嵌套列表生成
①手动输入...
>>> x=[[123,43],[123,432,45]]
>>> print(x)
[[123, 43], [123, 432, 45]]
②利用for循环
>>> x=[[i for i in range(5)]for j in range(3)]
>>> print(x) #列表中数据不同时,第一位i就这样
[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]
写到这里时markdown bug了,只能手动打…
③更美观
x=[[i for i in range(3)]for j in range(3)]
for j in range(3):print(x[i]) #用切片的方法
#其实也可直接嵌套for循环输出“i x j”的列表,
#形式一样,但不知道表义上是否一样
for i in range(3):
print([j for j in range(3)])
#输出结果都为:
[0,1,2]
[0,1,2]
[0,1,2]
元组(只读)
(),tuple(range())
#单个元素一定加的‘,’
>>> print((3)*3)
9
>>> print((3,)*3)
(3, 3, 3)
>>>
集合
{…}、set{range()}
{}创建的是字典
不能含有相同元素
字典
{},dict()
编辑与使用
在这之前,先各序列的可编辑性做说明。
列表:最灵活的序列,能做所有改变
元组:最死板,只能删除
集合:可以添加删除,不能修改值
字典:也很灵活,比较特别