python学习总结

python学习总结

时间:2019.1.1-2019.1.6

    

import math
math.ceil(4.6) # 取顶 math.ceil(-4.6)
5 -4
math.floor(4.6) #取底 math.floor(-4.6)
4 -5
int(2.1) #取整
2
int(-2.1) #取整
-2
1//3 #向下取整 -1//3
0 -1
round(1.1) (1.5)(1.6)(2.5)(3.5)(2.5000001)
1 2 2 2 4 3
#四舍五入,0.5时取最近偶数
round(-1.1) (-1.5)(-1.6)
-1 -2 -2
math.sqrt() #开方
bin(10) #二进制 ‘0b1010’
oct(10) #八进制 ‘0o12’
hen(10) #十六进制 ‘0xa’

a= 1000
if isinstance(str(a),str): #str(a)把a变成字符串
print(‘a string’) #str、tuple、list、int
#等价 if type(a) == str:

列表 list []

一个整齐的队列,线性的数据结构,由若干元素组成,元素有顺序,可以用索引,列表是可变的(l1[3]=10)
列表可以相加 [1,2]+[3,4],就地修改,使用需赋值
l1 = list(range(5))
l2 = [range(3)] #注意{}
len(l1) = 5 len(l2) = 1

index索引
l1 = list(range(10,14))
l1.index(11) #结果为1,数列中出现相同元素打印第一个的位置

count计数
l1 = [1,2,3,4,5,6,1,1,1]
print(l1.count(1)) 4

index和count都要遍历 # O(n)
len(l1) # O(1)

append 尾部追加 O(1)
#l1.append(4)

insert 插入
#l1.insert(3,4)位置3(第四个元素的位置插入4),若len(l1)为3,亦可插入,效果和尾部追加一样;l1.insert(10000,4)效果也是尾部追加,因为超界,不报错,l1.insert(-1000,4),同理头部追加

extend 组队扩展,尾部追加

l1.extend(range(10,15))

l1=[[1,2,3],[1,2,3],[1,2,3]]
l1[0]=100
l1=[100],[1,2,3],[1,2,3]]重新赋值,修改了元素地址
l1=[1][1]=200
l1=[[100],[1,200,3][1,200,3]]
第二个元素和第三个元素存在一起,内部局部修改,会访问同一个内存地址,因此都改

remove(value)
从左至右查找第一个匹配的value值,移除改元素

reverve()
将列表元素反转

sort()
将列表元素进行排序

random.choice(l1) 随机数
random.shuffle(l1) 洗牌
random.sample(l1,2) 随机取2个,不会在同一个地址取

字符串格式化

print(’{}&&{}={}{}’.format(2,3,6,8))
2&&3=6
8
#{}之间可以加符号,里面不填数字的话默认顺序0123……
print(’{1} {2} {0}’.format(‘hello’,‘world’,‘my’)) #数字对应后面元组里面的相应位置,但是为了简洁,最好顺序一一对应,这样就不用写数字位置了
结果为:world my hello

对齐

‘{0}* {1}={2:<5}’.format(3,2,23)
#后面元组位置0是3,位置1是2,位置2是2
3,:<代表左对齐,后面紧跟的5代表占据5个格
32=6
'{0}
{1} ={2:>5}’.format(3,2,23)
3
2= 6

补0操作:0填写在不等号(><)的右边
print(’{0}* {1}={2:<05}’.format(3,2,23))
3
2=60000
print(’{0}* {1}={2:>05}’.format(3,2,23))
3
2=00006
补符号操作:符号填写在不等号(><)的左边
print("{0}* {1}={2:@<5}".format(3,2,23))
3
2=6@@@@
print(’{0}* {1}={2:@>5}’.format(3,2,23))
3
2=@@@@6

居中操作:占30个格并将内容居中,两边可以加符号
‘{:^30}’.format(‘centered’)
centered
‘{:*^30}’.format(‘centered’) # :后面 ^前面加 *
centered
print(’{:0^30}’.format(‘centered’)) # :后面 ^前面加 0
00000000000centered00000000000

进制转换
print(’{:b}’.format(8))
print(’{?}’.format(8))
print(’{:x}’.format(8))
print(’{:#b}’.format(8))
0b1000 #加#(井号)可以显示进制格式,不加则直接显示数字

冒泡排序

第一轮比较:从左到右,由左边第一个元素a[0]开始,两两相比,比len(a)-1次,如果每次比较前者比后者要大,则交换位置。结果:把最大的数移动到了列表的最后一位。
第二轮比较:同样从左到右,由左边第一个元素a[0]开始,由于最后一个数已经最大,不需要再比,因此第二轮只需要比len(a)-2次
最后一轮比较:即为a[0]和a[1]的比较。

a = [1,5,3,7,9,4] #len(a) = 6
for i in range(len(a)-1): #i从0-5取值
for j in range(len(a)-i-1):
if a[j] > a[j+1]:
w = a[j]
a[j] = a[j+1]
a[j+1] = w
print(a)
[1, 3, 4, 5, 7, 9]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值