内容概要
- 模块——包的具体使用
- 编程思想介绍
- 软件开发——目录规范
- 常用模块介绍——collections模块
- 常用模块介绍——time、datetime
- 常用模块介绍——random
1.包的具体使用
'''
虽然python3中对包的要求降低了,不需要__init__.py也可以识别,但是为了兼容性考虑最好还是加上__init__.py文件
'''
1.我们如果只想使用包中的某几个模块,那么还是按照之前的导入方式即可
from 路径 import 模块名
2.或者直接导入包名
import 包名
只不过我们在导入包名的时候只是导入包里面的__init__.py文件,此文件中的名字可以通过包+.的方式调出来供我们使用
2.编程思想的转变
1.
小白阶段:
我们在写代码阶中总是所有的代码堆叠在一起
大多是if else 等等的判断堆叠
2.
初级阶段
根据功能或需求的不同我们可以把一段代码给封装成函数模式
我们通过调用函数的方法可以让我们避免写冗长重复的代码
3.
模块阶段
我们根据不同的需求封装不同的函数到不同的py文件中
我们在编写代码的过程中可以直接通过模块方式调用我们写好的功能
3.软件开发——目录规范(重要)
1.我们在编写软件的时候,目录规范的指定主要是在开发程序过程中针对不同的文件功能需要做出不同的分类
文件名字并不绝对,但是总体思想是不变的 为了分类管理的便利性我们需要规范的目录
项目my_project文件夹中应包含
1.bin 文件夹
strat.py
2.conf 文件夹
settings.py
3.core 文件夹
src.py
4.interface
user.py
goods.py
order.py
5.db文件夹
db_handler.py
userinfo.txt
6.log 文件夹
log.log
7.lib 文件夹
common.py
8.readme 文件夹
9.requierments.txt 主要存放项目所需模块及版本
4.常用内置模块——collections模块
1.具名元组:nametuple
from collections import named tuple
此功能参数:
collections.namedtuple(typename, field_names, verbose=False, rename=False)
typename:字符串,元组名称
field_names:由元组中元素的名称,可选类型为:字符串列表或空格分隔开字符串或逗号分隔开字符串
verbose:默认就好
rename:如果元素名称中含有python的关键字,则必须设置为rename=True
from collections import namedtuple
point = namedtuple('点', ['x', 'y'])
p1 = point(1, 2)
print(p1)
print(p1.x)
print(p1.y)
________________________________________________________________
from collections import namedtuple
poke_list = namedtuple('扑克牌', ['num', 'color'])
poke = poke_list(1, '红桃')
poke1 = poke_list(1, '黑桃')
print(poke)
print(poke.num)
print(poke.color)
2.队列与堆栈
队列:先进先出
栈堆:先进后出
队列和堆栈都是一边只能进一边只能出
3.Counter
from collections import Counter
l1 = ['jason','jason','kevin','oscar','kevin','tony','kevin']
l1_data = Counter(l1)
print(l1_data)
我们使用Counter功能()内需要填写可迭代对象
我们可以获得一个字典,键为可迭代对象,值为出现次数
l1 = [11, 2, 3, 2, 2, 1, 2, 1, 2, 3, 2, 3, 2, 3, 4, 3, 2, 3, 2, 2, 2, 2, 3, 2]
from collections import Counter
l1_count = Counter(l1)
print(l1_count)
4.deque
from collections import deque
q = deque([1, 2, 3, 4, 5])
a = q.pop()
print(a)
print(q)
q.append(10)
print(q)
print(q[0])
打印结果为:
5
deque([1, 2, 3, 4])
deque([1, 2, 3, 4, 10])
1
4.常用内置模块——time、datetime模块
time 模块

time模块常用函数
1.时间戳
import time
print(time.time())
2.推迟指定的时间运行
import time
time.sleep(1)
print('hello world')
3.格式化输出时间
print(localtime())
print(time.strftime('%Y-%m-%d,%H:%M:%S:%p',time.localtime()))
print(time.strftime('%Y:%m:%d %X',time.localtime()))
总而言之strftime() 可以把localtime() 的时间相关信息
根据自己想输出的内容格式 表现出来
而strptime() 则是根据自己输入的时间内容编程localtime()的格式
print(time.strptime('2020-10-18','%Y-%m-%d'))
它输出的的和结构化时间 localltime() 一样

import datatime
import time, datetime
print(datetime.datetime.now())
print(datetime.datetime.today())
print(datetime.date.today())
精简版
from datetime import datetime,date
print(date.today())
print(datetime.now())
from datetime import datetime
d = datetime.strptime('2017/9/30', '%Y/%m/%d')
print(d)
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)
时间差:
import datetime
ctime = datetime.datetime.today()
print(ctime)
time_del = datetime.timedelta(minutes=20)
print(ctime + time_del)
2022-10-19 19:02:11.837217
2022-10-19 19:22:11.837217
差值20分钟
5.常用模块——random模块(随机数)
import random
print(random.random())
print(random.randint(1,9))
print(random.randrange(0,100,2))
print(random.choice(['一等奖', '二等奖', '三等奖', '谢谢惠顾']))
rint(random.sample(['jason', 'kevin', 'tony', 'oscar', 'jerry', 'tom'], 2))
l1 = [2, 3, 4, 5, 6, 7, 8, 9, 10, 'J', 'Q', 'K', 'A']
random.shuffle(l1)
print(l1)
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)
res = get_code(4)
print(res)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现