今日内容概要
包的具体使用
在使用包的时候最好加上__init__.py
虽然在oython3中对包的要求降低了但是为了提高兼容性 在使用时还是加上
1.如果只想用包中的几个模块,那么按照之前的方法即可
from aaa import md1,md2
2.如果直接导入包名
import aaa
导入包其实就是包下面的__init__.py文件,该文件中有什么名字就可以通过包名点使用

编程思想的转变
#1.面条版阶段
所有代码全部堆在一起(if elif else 的结构)
#2.函数版阶段
根据功能的不同封装不同的函数
#3.模块版阶段
更具文件的不同拆封成不同的文件
'''
不断优化的阶段 使得为了划分区域越准确 为了使资源的高效管理
'''
软件开发目录规范
#1.文件及目录的名字是可以转变的 但是思想是不变的 分类管理
#2.目录规则主要规定开发程序的过程中针对不同的文件功能需要做不同的分类
myproject 项目文件夹
1.bin文件夹 主要存放项目启动文件
start.py 启动文件可以放到bin文件下 也可以放到根目录下
2.conf文件夹 主要存放项目配置文件
settings.py 主要存放项目的默认配置 一般是全大写
3.core文件夹 主要存放项目的核心文件
src.py 里面存放项目核心功能
4.interface文件夹 主要存放项目接口文件
goods.py 按照具体的业务来划分对应的文件
user.py
account.py
5.db文件夹 主要存放项目相关数据
userinfo.py
db_handler.py 存放数据库相关功能
6.log文件夹 主要存放项目相关日志
log.log
7.lib文件夹 主要存放项目公共功能
common.py
8.readme文件 主要存放项目相关说明(类似于说明书)
9.requirements.txt 主要存放项目所需模块以及版本
常用内置模块
collections模块
#1.具名元组:namedtuple
from collections import namedtuple
'''
表示二维的坐标系
print=namedtuple('点',['x','y'])
生成点信息
p1 = point(1,2)
print(p1) #点(1,2)
print(p1,x) # 1
print(p1,y) # 2
'''
制作扑克牌
card = namedtuple('扑克牌',['num','color'])
c1 = card('A','♥')
print(c1,c1.num,c1.color)
# 输出的结果是 扑克牌'A','♥' A ♥
#2.队列
队列与堆栈
队列:先进先出
堆栈:后进先出
两个都是单边输出的 只能一边进一边出
时间模块
import time
'''
三种时间的表达形式
1.时间戳
秒数
2.结构划时间
给计算机看的时间格式
3.格式化时间
使用我们的时间单位记录的时间
'''
多种用法
1.time.time
获取当前时间与1971.1.1所过去的时间
2.time.localtime()
获得当前时 是以结构化时间的格式
3.time.strfitime()
获取当前格式可以输入符号来选则输出格式
%Y 年 %m 月 %d 日
%H 时 %M 分 %S 秒
使用 %X 可以打印出 时 分 秒

4.import datetime
'''
datetime 年月日 时分秒
date 年月日
time 时分秒
'''
指定时间的输入
c = datetime.datetime(2017,5,23,12,13)
print(c) # 2017-05-23 12:13:00

5.import datetime
citime = datetime.date.today()
print(citime)
time_j = datetime.timedelta(days=3)
print(citime+time_j)
#做到时间延迟

随机数模块
import random
print(random.random()) # 随机产生一个0到1的小数
print(random.randint(1,10)) # 随机产生一个1到10的整数(闭区间)
print(random.randrange(1,100,2)) # 随机产生指定的整数 第三位数时间隔

#同样适用于字符串
print(random.choice(['一等奖','二等奖','三等奖']))
print(random.choices(['一等奖','二等奖','三等奖']))

#打乱数据顺序
l1 = [1,2,3,4,5,6,7,8,9]
random.shuffle(l1)
print(l1)
'''产生图片的验证码'''
def func(a):
code=''
for i in range(a):
upper_r = chr(random.randint(65,90))
lower_r = chr(random.randint(97,122))
int_r = str(random.randint(0,9))
tmep = random.choice([upper_r,lower_r,int_r])
code += tmep
return code
res = func(10)
print res
