笔记
spilt和partition的区别
a='123-456-789'
b=a.split('-')###多次分割,并且返回的是列表
print(b)
c=a.partition('-')
print(c)##从左往右,只分割一次,并且返回的是元祖
推导式
def pingfang(a):
return a*a
b=[pingfang(i) for i in range(5)if i%2==0]
print(b)##[0,4,16]
b=[i**2 for i in range(5)if i%2==0]
print(b)#[0,4,16]
a=[1,2,3,4,5]
b=[a[i]*2 for i in range(len(a))if a[i]%2==0]
print(b)#[4,8]
a=[[1,2,3],[4,5,6],[7,8,9]]
b=[a[0][i]for i in range(len(a))]
print(b)#[1,2,3]
a=[[1,2,3],[4,5,6],[7,8,9]]
b=[a[i][i]for i in range(len(a))]
print(b)##[1,5,9]
a=[[1,2,3],[4,5,6],[7,8,9]]
b=[a[i][0]for i in range(len(a))]
print(b)#输出[1,4,7]
a=[[1,2,3],[4,5,6],[7,8,9]]
b=[a[i][2-i] for i in range(len(a))]
print(b)#输出[3,5,7]
a=[[1,2,3],[4,5,6],[7,8,9]]
for i in range(len(a)):
for j in range(len(a[i])):
print(a[i][j],end='')
将字典里面的k,v值进行互换
a={1:2,3:4,5:6}
b={v:k for k,v in a.items()}
print(b)
a={k:v for k,v in zip(['a','b','c'],(1,2,3))}
print(a)#生成{'a':1,'b':2,'c':3}
b=zip(['a','b','c'],(1,2,3))
print(b)
for x in b:
print(x)
#get方法
a={'a':1,'A':2,'b':3,'B':4,'c':5}
print(a.get('a',0))##get方法,以键取值
print(a.get('B'.lower(),0))#3
print(a.get('c'.upper(),0))#0
a={'a':1,'A':2,'b':3,'B':4,'c':5,'D':6}
b={'a','b','c'}
b={k.lower():a.get(k.lower(),0)+a.get(k.upper(),0)for k in a.keys() if k in b }
print(b)#{a:3,b:7,c:5}
集合的唯一性
a=[1,2,3,1,2,3]
b={i*i for i in a}##集合具有唯一性
print(b)#{1,4,9}
模块
导入模块的几种方法
1.import 模块名
2.import 模块 as 别名
3.一行导入多个模块(不推荐)
4.from… import…局部导入
5.支持导入多行
6.from…inport…as别名
7.from 模块import*
random模块
import random
a=random.randint(1,20)###随机输出1-20的整数
print(a)
b=random.random()##随机输出0-1的实数
print(b)
b=random.uniform(2.2,8.8)##随机输出范围内的数
print(b)
c=random.randrange(1,23,3)#随机输出1-23中,差值为3的数
print(c)
随机选择
a=[10,20,30,40]
b=random.choice(a)##随机从列表中选择一个
print(b)
random.shuffle(a)#随机打乱列表的顺序
print(a)
join的使用方法
a='123'
b='abd'.join(a)
print(b)
生成一个随机二维码
import random
def dev_code():
code=''
for i in range(4):
a=random.randint(1,9)
print('a=',a)
b=chr(random.randint(65,90))
print('b=',b)
add=random.choice([a,b])
print('add=',add)
code=''.join(code+str(add))
code=code+str(add)
print('code=',code)
return code
x=dev_code()
print(x)
时间模块
import time
while True:
a = '2019-4-29 17:07:00'
djsj_yz = time.strptime(a, '%Y-%m-%d %H:%M:%S')
# print(djsj_yz)
djsj_sjc = time.mktime(djsj_yz)
# print(djsj_sjc)
sj = 7 * 24 * 60 * 60
ygsj = time.time() - djsj_sjc
sysj = int(sj - ygsj)
day = sysj // (24 * 60 * 60)
hour = sysj % (24 * 60 * 60) // (60 * 60)
fenzhong = sysj % (60 * 60) // 60
miao = sysj % 60
print('剩余:', day, '天', hour, '小时', fenzhong, '分钟', miao, '秒解冻')
time.sleep(1)
作业
1.创建一个函数,输入一个大于1的整数,返回一个列表,
包含所有能够整除该整数的因子(不包含1和它本身),并且从小到大排序。
如果这个数是素数,则返回“(integer) is prime”。
def hanshu(a):
b=[]
for x in range(2,a):
if a%x==0:
b.append(x)
if len(b)!=0:
return b
else:
print(x,'是素数')
print(hanshu(12))
print(hanshu(25))
print(13)
2.使用列表推导式将一个二维列表转换成一个一维列表。
lst = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
转换成:lst2=[1, 2, 3, 4, 5, 6, 7, 8, 9]
使用列表推导式
lst = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
lst2=[i for lst1 in lst for i in lst1 ]
print(lst2)
3.现在有一列表lst = [[1,2,3],[4,5,6],[7,8,9]]
要求使用列表推导式取出 1、4、7 和 1、5、9 元素,思考如何取出
lst = [[1,2,3],[4,5,6],[7,8,9]]
lst1=[ lst[i][0]for i in range(len(lst))]
print(lst1)
lst = [[1,2,3],[4,5,6],[7,8,9]]
lst1=[lst[i][i]for i in range(len(lst))]
print(lst1)