今日内容
包的具体使用
虽然python3对包的要求降低了 不需要__init__.py也可以识别但是为了兼容性的考虑最好还是加上__init__.py
1.如果只想用包中某几个模块 那么还是按照之前的导入方式即可
from bbb import md1, md2
2.如果直接导入包名
import bbb
导入包其实就是导入包名下面的__init__.py文件,该文件内有什么名字就可以通过包名点什么名字
编程思想的转变
1.面条版阶段
所有代码全部堆叠在一起
2.函数版阶段
根据功能的不同封装不同的函数
3.模块版阶段
根据功能的不同拆分成不同的py文件
'''
按照需求从上往下堆叠代码>>>根据不同的功能将代码封装成不同的函数>>>根据不同的功能分成不同的模块文件单文件>>>多文件
一切都是为了能高效率便捷的进行资源管理
'''
软件开发目录规范
1.文件名及目录可以变换 但是思想是不变的 分类管理
2.目录规范主要规定开发程序的过程中针对不同的文件功能需要做不同的分类
3.myproject项目文件夹
1.bin文件夹# 主要存放项目启动文件
start.py # 启动文件可以放在bin目录下 也可以直接在项目根目录
2.conf文件夹# 主要存放项目配置文件
settings.py # 里面存放项目的默认配置 一般都是全大写
3.core文件夹# 主要存放项目配置文件
src.py # 里面存放的项目核心功能
4.interfa文件夹# 主要存放项目接口文件
goods.py
user.py # 根据具体业务逻辑划分对应的文件
accout.py
5.db文件夹 # 主要存放项目相关数据
userinof.txt
db_handler.py # 存放数据库相关操作代码
6.log文件夹 # 主要存放项目日志文件
log.log
7.lib文件夹 # 主要存放项目公共设施
common.py
8.readme文件 # 主要存放项目相关说明
9.requirements.py文件 # 主要存放项目所需的模块及版本
常用内置模块collections
1.具名元组:namedtuple
from collections import namedtuple
表示二维坐标系
point = namedtuple('点', ['x', 'y'])
生成信息点
p1 = point(1, 2)
print(p1) # 点(x=1, y=2)
print(p1.x) # 1
print(py.y) # 2
思路:
1.先打开模块
2.调用模块让后输入名称属性:
#namedtuple('名称', [属性list]):
from collections import namedtuple
car = namedtuple('汽车', ['num', 'color'])
c1 = car('5656', '黑色')
c2 = car('7878', '白色')
print(c1, c1.num, c1.color)
print(c2, c2.num, c2.color)
2.队列:
队列与堆栈
队列:先进先出
堆栈:先进后出
队列与堆栈都是一边只能进一边只能出
常用内置模块之时间模块
import time
三种时间表现形式:
1.时间戳
秒数
2.结构化时间
主要是给计算机看的
3.格式化时间
主要是给人看的
import time
print(time.time()) #结果: 1666176214.275098
# 时间戳1970 年 1 月 1 日(08:00:00 GMT)至当前时间的总秒数
import time
print(time.localtime())
#结果: time.struct_time(tm_year=2022, tm_mon=10, tm_mday=19, tm_hour=18, tm_min=44, tm_sec=38, tm_wday=2, tm_yday=292, tm_isdst=0)
#用元组的形式将现在的时间详细描述
import time
print(time.strftime('%Y-%m-%d'))
#结果: 2022-10-19
# 显示现在几年几月几日
import time
print(time.strftime('%Y/%m/%d %H:%M:%S'))
#结果: 2022/10/19 18:50:02
# 将时间精确到秒
import time
print(time.strftime('%Y/%m/%d %X'))
#结果: 2022/10/19 11:31:18
#精确到秒简化写法X中包含了HMS
'time.sleep(5)'让系统延迟执行括号内是秒数
import datetime
import datetime
print(datetime.datetime.now())
#精确到分秒
#结果: 2022-10-19 19:07:42.207169
import datetime
print(datetime.date.today())
# 精确到年月日
#结果: 2022-10-19
'''
datetime 年月日 时分秒
date 年月日
time 时分秒(后续会有此规律)
'''
指定日期修改:
import datetime # 调用模块
c = datetime.datetime(2017, 5, 23, 12, 20)
#修改日期
print('指定日期:',c)
# 指定日期: 2017-05-23 12:20:00
from datetime import datetime
d=datetime.strptime('2017/9/30','%Y/%m/%d')
print(d) # 2017-09-30 00:00:00 默认时间是0
e=datetime.strptime('2017年9月30日星期六','%Y年%m月%d日星期六')
print(e) # 文字写法
f=datetime.strptime('2017年9月30日星期六8时42分24秒','%Y年%m月%d日星期六%H时%M分%S秒')
print(f) # 2017-09-30 08:42:24
import datetime
ctime = datetime.date.today()
print(ctime) # 现日期2022-10-19
time_del = datetime.timedelta(days=3)
print(ctime + time_del) # 天数加3 2022-10-22
ctime = datetime.datetime.today()
print(ctime)
# 现时间日期秒数2022-10-19 19:23:06.582330
time_del = datetime.timedelta(minutes=20)
print(ctime + time_del)
# 同理秒数加20 2022-10-19 19:43:06.582330
常用内置模块之随机数模块
import random
print(random.random()) # 随机产生0-1之间的小数
print(random.randint(1, 6)) # 随机1-6整数
print(random.randrange(1, 100, 2))
# 2是步长的意思 比如1走两步到3 随机产生指定整数
print(random.choice(['汽车', '飞机', '美女'])) # 随机抽取一个样本 '美女'
print(random.choices(['汽车', '飞机', '美女'])) # 以列表形式随机抽取一个样本 ['飞机']
print(random.sample(['jason', 'kevin', 'tony', 'oscar', 'jerry', 'tom'], 2))
# 2是抽取个数 随机抽样本数组成列表 ['tom','jerry']
l1 = [2, 3, 4, 5, 6, 7, 8, 9, 10, 'J', 'Q', 'K', 'A']
random.shuffle(l1) # 随机打乱数据集
print(l1)
'产生图片验证码 每一位都可以是大小写字母和数字 四位'
import random
def get_code(n):
code = ''
for i in range(n): # 产生随机大小写字母和数字
random_upper = chr(random.randint(65, 90))
random_lower = chr(random.randint(97, 122))
random_int = str(random.randint(0, 9))
temp = random.choice([random_upper, random_lower, random_int]) # 随机三选一
code += temp
return code
res = get_code(10)
print(res) # 10位随机
res = get_code(4)
print(res) # 四位随机
标签:内置,python,random,datetime,模块,time,print,import,py
From: https://www.cnblogs.com/lsl1/p/16807581.html