19.4.30笔记and作业

笔记

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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值