【Python个人笔记】数据与表达

#欢迎交流学习

数据:常用函数
表达:列表、元组、集合、字典

一、系统函数

此部分只记载常用函数,比较枯燥 搬砖运动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函数库

emath.e
pimath.pi
math.inf
平方根math. sqrt()
指数emath.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()

编辑与使用

在这之前,先各序列的可编辑性做说明。
列表:最灵活的序列,能做所有改变
元组:最死板,只能删除
集合:可以添加删除,不能修改值
字典:也很灵活,比较特别

列表
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值