4.30笔记+day8作业

本文深入探讨Python编程的高级特性,包括列表、字典及集合的推导式使用,模块导入与函数调用技巧,以及时间处理和随机数生成方法。通过实例演示,帮助读者掌握高效编程实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

推导式

#列表推导式

a=[i for i in range(11) if i%2==0]
print(a)
def pingfang(a):
    return a*a
b=[pingfang(i) for i in range(5) if i%2==0]
print(b)
b=[i*i for i in range(5) if i%2==0]
print(b)

a=[[1,2,3],[4,5,6],[7,8,9]]
b=[a[i][2-i] for i in range(len(a))]
print(b)
b=[a[i][j] for i in range(len(a)) for j in range(len(a[i]))]
print(b)

#字典推导式

a={1:2,3:4,5:6}
b={v:k for k,v in a.items()}
print(b)#{2: 1, 4: 3, 6: 5}

a={"a":1,"A":2,"b":3,"B":4,"c":5}
b={"a","b","c"}
c={k.lower():a.get(k.lower(),0)+a.get(k.upper(),0)  for k in a.keys() if k in b}
print(c)    #{'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、在文件夹a中定义一个函数x(),在b文件夹中调用

import a
b.x()
print(b.x())
#
from a import x()
print x()

2、导入多个模块
假设在另一个文件夹 c 中定义函数 y()
要求同时将a,c中的函数调用

import a
import c
b.x()
print(b.x())
c.y()

3、as
利用上面定义的C文件夹的函数y()举例

import c as t#as就是将文件名替换一个方便的名字
t.y()
from c import y as i    #这里是将函数名或者方法名替换成方便的名字
i()

3、引用
当一个文件中定义了多个函数,我们只需要一条时,可以用下面的方法
from 文件名 import 所需要的函数
如果需要调用全部的话用
,举例如下
*
from 文件名 import*
注意的是*对于下划线开头的函数或方法的话是无效的

__all__用来暴露接口,提供哪些是公开接口的约定
在一个文件中定义好多个函数,要求有些不能用,但已经写成了
from xxx import*,这时就可以用__all__规定可以调用的白名单

#系统相关信息模块 import sys

import sys
print(sys.path)#查看路径
sys.path.append("4028")#跨包调用
import qwer

#跨包调用

import sys
sys.path.append("d:\\pywork\\a")  #临时添加路径
import a.a1.a11.heh
a.a1.a11.heh.hanshu()

#查看系统版本及其他操作

import sys 
print(sys.version)
print(sys.argv)

name=sys.argv[1]
pwd=sys.argv[2]
if name =="admin" and pwd=="123456":
    print("登录成功")
else:
    print("用户名密码错误,请重试")

假设定义一个包名为A 它下面的文件名A1,A1下面文件名A11,里面定义函数在另一个包中的文件下调用

from A.A1.A11 import*
print()
hanshu()

#random

import random
a=random.random(0,1) #随机选取0-1之间的随机数
print(a)

import random
b=random.randint(1,20)#随机选取1-20 之间的数
print(b)

#uniform 随机抽取指定范围的小数

import random
a=random.uniform(2.3,5.6)
print(a)

#randrange(x,y,z)x代表初始值,y代表结束值,z代表步长

import random
a=random.randrange(1,22,3)
print(a)

#choice随机选 shuffle随机洗牌

import random
a=[10,20,30,40]
b=random.choice(a)
print(b)
random.shuffle(a)
print(a)

#join

a="123"
b="-".join(a)
print(b)#1-2-3

#随机验证码

import random
def dev_code():
    code=""
    for i in range(4):
        a=random.randint(1,9)
        b=chr(random.randint(65,90))
        add=random.choice([a,b])
        code="".join([code,str(add)])
    return code
x=dev_code()
print(x)

时间

#sleep 休眠

import time
print("1")
time.sleep(1)
print("2")

#时间戳

import time
print(time.time())

#时间元组

import time
print(time.localtime())

#将时间元组返回时间戳

import time
a=time.localtime()
b=time.mktime(a)
print(b)

#时间格式化字符串

import time
a=time.strftime("%Y-%m-%d %H:%M:%S".format(time.localtime()))
print(a)

#字符串转元组

import time
a="2019-04-30 16:58:29"
b=time.strptime(a,"%Y-%m-%d %H:%M:%S")
print(b)

#asctime ctime

import time
print(time.asctime(),type(time.asctime()))
print(time.ctime(),type(time.ctime()))
#结果:Tue Apr 30 20:42:00 2019 <class 'str'>
#Tue Apr 30 20:42:00 2019 <class 'str'>

#银行卡解冻

#2019-4-29 17:07:00冻结
#冻结7天,现在已过时间,求还有多少天解冻

import time
#总时间7天转换成秒
all_time=7*24*60*60
#冻结的时间
dongjie="2019-4-29 17:07:00"
dongjie2=time.strptime(dongjie,"%Y-%m-%d %H:%M:%S")
dongjie3=time.mktime(dongjie2)
#当前时间
now_time=time.time()
#已过时间
yg_time=now_time-dongjie3
#剩余时间
sysj=all_time-yg_time

day=sysj//(24*60*60)
hour=sysj%(24*3600)//(60*60)
minute=sysj%(60*60)//60
second=sysj%60
print(day,"天",hour,"小时",minute,"分钟",second,"秒")

day8作业

# 1.创建一个函数,输入一个大于1的整数,返回一个列表,
# 包含所有能够整除该整数的因子(不包含1和它本身),并且从小到大排序。
# 如果这个数是素数,则返回“(integer) is prime”。

def hanshu(num):
    a=[i for i in range(2,num) if num%i==0]
    return a if a else "%i is prime"%num
print(hanshu(12))#[2, 3, 4, 6]
print(hanshu(3))#3 is prime

# 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]]
b=[lst[i][j] for i in range(len(lst)) for j in range(len(lst[i]))]
print(b)

# 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]]
#取出1,3,7
lst1=[lst[i][0] for i in range(len(lst))]
print(lst1)
#取出1,5,9
lst2=[lst[i][i] for i in range(len(lst))]
print(lst2)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值