模块

包的具体使用

python3对包的要求降低了,不需要__init__.py也可以识别
但是为了兼容性考虑最好还是加上__init__.py
1.如果只想用包中某几个模块,那么还是按照之前的导入方式即可
from aaa import md1,md2
2.如果直接导入包名
import aaa
导入包名其实就是导包下面的__init__.py文件,该文件内有的名字就可以通过包名点出来.

软件开发目录规范

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.txt
db_handler.py 存放数据库操作相关的代码

6.log文件夹    主要存放项目日志文件
log.log

7.lib文件夹   主要存放项目公共功能
common.py

8.readme文件   主要存放项目相关说明

9.requirements.txt文件  主要存放项目所需模块及版本

常用内置模块之collections模块

1.具名元组:namedtuple

from collections  import namedtuple
表示二维坐标系
#示例1
point = nmaedtuole ('点',['x','y'])
生成点信息
p1 = point(1,2)
print(p1) # 点(x=1,y=2)
print(p1.x)# 1
print(p1.y)# 2

#示例2

card = namedtuple ('扑克牌',['num','color'])
c1 = card('A','黑桃')
c2 = card('A','红♥')
print(c1,c1.num,c1,color)
print(c2,ca.unm,c2.color)

队列与堆栈

队列:先进先出
堆栈:先进后出
队列和堆栈都是一边进一边出,是不能颠倒的顺序

常用内置模块之时间模块

*import time
"""
三种时间表示形式
1.时间戳
   秒数
2.结构化时间
主要是给计算机看的,人看不适应
3.格式化时间
主要是给人看的
"""

时间代码示例

  • import time
import time
print(time.time())
#1666168000.1696086

print(time.localtime())
#time.struct_time(tm_year=2022, tm_mon=10, tm_mday=19, tm_hour=16, tm_min=26, tm_sec=40, tm_wday=2, tm_yday=292, tm_isdst=0)

print(time.strftime('%y_%m_%d'))
#22_10_19

print(time.strftime('%Y/%m/%d'))
#2022/10/19

print(time.strftime('%Y /%m/%d %H:%M:%S '))
#2022 /10/19 16:36:29 

print(time.strftime('%Y/%m/%d/%x'))
#2022/10/19/10/19/22

time.sleep(100)#让程序原地阻塞指定的秒数
  • import datetime
  • datetime 年月日 时分秒
    date 年月日
import datetime
print(datetime.datetime.now())
#2022-10-19 16:52:54.621661

print(datetime.datetime.today())
#2022-10-19 16:52:54.621661

print(datetime.date.today())
#2022-10-19
  • 补充:指定日期时间
from datetime import date ,datetime
import datetime
c = datetime.datetime(2017,5,23,12,20)
print('指定日期:',c)
#指定日期: 2017-05-23 12:20:00

e=datetime.strptime('2017年9月30日星期六','%Y年%m月%d日星期六')
#2017-09-30 00:00:00

f=datetime.strptime('2017年9月30日星期六8时42分24秒','%Y年%m月%d日星期六%H时%M分%S秒')
#2017-09-30 00:00:00

random随机数模块

import random

"""随机打印数字"""
print(random.random())#产生一个从0~1的小数
print(random.randint(1,5))#产生一个从1~5的小数
print(random.randrange(1,10,2))#产生一个从1~10的奇数

"""从数据集中随机打印数据"""
print(random.choice([1,2,3]))#随机打印一个列表中的数据值
print(random.choices([1,2,3]))#随机打印一个列表中的数据值并组成列表
print(random.sample([1,2,3],2))#随机打印两个列表中的数据值并组成列表

"""打乱数据集顺序"""
l1=[1,2,3,4,5]
random.shuffle(l1)#把列表中的数据随机打乱顺序
print(l1)

练习:产生一个4位验证码,要包含大小写字母和数字

def func(n):
    yzm=''
    for i in range(n):
        #1.先产生随机的大小写字母、数字
        random_upper=chr(random.randint(65,90))
        random_lower=chr(random.randint(97,122))
        random_int=str(random.randint(0,9))#字符串不能和整数相加,所以转换成字符串
        #2.把随机生成的字符三选一
        temp=random.choice([random_upper,random_lower,random_int])
        yzm+=temp
    return yzm
res=func(4)
print(res)

posted @ 2022-10-19 20:57  梅梅小可爱  阅读(50)  评论(0)    收藏  举报