今日内容概要

  • 包的具体使用

  • 编程思想的转变

  • 软件开发目录规范

  • python常用内置模块

collections 模块
time 模块与datetime模块
os模块与sys模块

今日内容详细

包的具体使用
虽然python3对包的要求降低了 不需要__init__.py 但是为了兼容性考虑最好还是加上__init__.py
1、如果知识想用包中的某几个模块 那么还是按照之前的导入方式即可
from aaa import md1,md2
2、如果直接导入包名
import aaa
导入包名其实就是导包下面的__init__.py文件,该文件内有什么名字就可以通过包名点什么名字
编程思想的转变
1、面条版阶段
所有的代码全部堆叠在一起
2、函数阶段
根据功能的不同封装不同的函数
3、函数版阶段
根据功能的不同拆分成不同的py文件
"""
第一个阶段可以看成是直接将所有的数据放在C盘
	视频 音频 文本 图片
第二个阶段可以看成是将C盘下的数据分类管理
	视频文件夹 音频文件夹 文本文件夹 图片文件夹
第三个阶段可以看成是将C盘下的数据根据功能的不同划分到更合适的位置
	系统文件夹 C盘	
	视频文件夹 D盘
	图片文件夹 E盘
ps:类似于开公司(小作坊 小公司 上市公司)
	为了资源的高效管理
"""
软件开发目录规范
1、文件及目录的名字可以变换 但是思想是不变的 分类管理
2、目录规范主要规定开发程序的过程中针对不同的文件功能需要做不同的分类
my project项目文件夹
	1、bin文件夹 主要存放项目启动文件
  	start.py
  2、conf文件夹 主要存放项目配置文件
  	settings.py 存放项目的默认配置 一般全是大写
  3、core文件夹 主要存放项目的核心文件
  	src.py里面存放项目核心功能
  4、interface文件夹 主要存放项目接口文件
  	goods.py根据业务划分对应文件
    user.py
  5、db文件夹 放项目相关数据
  6、log文件夹 放日志
  7、lib文件夹 存放项目公共功能
  8、readme文件 主要存放项目相关说明
  9、requirements.txt 主要存放项目所需模块及版本
常用内置模块之collections模块
1、具名元祖:namedtuple

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

card = namedtuple('poke',['num','color'])
c1 = card('A','黑🍑')
c2 = card('A','红♥️')
print(c1,c1.num,c1.color)
print(c2,c2.num,c2.color)

2、队列
队列与堆栈
队列:先进先出
堆栈:先进后出
队列和堆栈都是一边只能进一边只能出
常用内置模块之时间模块
import time
"""
三种时间表现形式
1、时间戳
	秒数
2、结构化时间
	主要是给计算机看的 人看不适应
3、格式化时间
	主要给人看的
"""
"""
# print(time.time())  # 1666150097.5481427
# print(time.localtime())  # time.struct_time(tm_year=2022, tm_mon=10, tm_mday=19, tm_hour=11, tm_min=32, tm_sec=50, tm_wday=2, tm_yday=292, tm_isdst=0)
# print(time.strftime('%Y-%m-%d'))  # 2022-10-19
# print(time.strftime('%Y/%m/%d'))  # 2022/10/19
# print(time.strftime('%Y/%m/%d %H:%M:%S'))  # 2022/10/19 11:30:20
# print(time.strftime('%Y/%m/%d %X'))  # 2022/10/19 11:31:18
time.sleep(10)  # 让程序原地阻塞指定的秒数


# import datetime
# print(datetime.datetime.now())  # 2022-10-19 11:58:23.682282
# print(datetime.datetime.today())  # 2022-10-19 11:58:23.682282
# print(datetime.date.today())  # 2022-10-19
'''
datetime 年月日 时分秒
date     年月日
time     时分秒(后续会有此规律)
'''
# from datetime import date, datetime
# print(date.today())
# print(datetime.today())
# print(datetime.utcnow())
# 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
# 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.date.today()
# print(ctime)
# time_del = datetime.timedelta(days=3)
# print(ctime + time_del)

# ctime = datetime.datetime.today()
# print(ctime)
# time_del = datetime.timedelta(minutes=20)
# print(ctime + time_del)
常用内置模块之随机数模块
import random

# print(random.random())  # 随机产生0到1之间的小数
# print(random.randint(1, 6))  # 随机产生1到6之间的整数
# print(random.randrange(1, 100, 2))  # 随机产生指定的整数
# print(random.choice(['一等奖', '二等奖', '三等奖', '谢谢惠顾']))  # 随机抽取一个样本  '二等奖'
# print(random.choices(['一等奖', '二等奖', '三等奖', '谢谢惠顾']))  # 随机抽取一个样本   ['二等奖']
# print(random.sample(['jason', 'kevin', 'tony', 'oscar', 'jerry', 'tom'], 2))  # 随机抽指定样本数  ['tom', 'jerry']
# l1 = [2, 3, 4, 5, 6, 7, 8, 9, 10, 'J', 'Q', 'K', 'A']
# random.shuffle(l1)  # 随机打乱数据集
# print(l1)


'''产生图片验证码: 每一位都可以是大写字母 小写字母 数字  4位'''
def get_code(n):
    code = ''
    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])
        code += temp
    return code

res = get_code(10)
print(res)
res = get_code(4)
print(res)

原文地址:http://www.cnblogs.com/yong-wu/p/16806468.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性