1.名字的查找顺序
1.先从内存中查找
2.再冲内置中寻找
3.最后去环境变量sys.path中查找
如果以上都找不到会直接报错。且文件名不能和内置名起冲突要不然会查找不到。
1.2如果查找不到模板
1.把模板所在的路径添加到sys.path中
import .sys
sys.path.append(r+文件路径)
2.使用from import路径
from文件路径import 文件名
from文件路径文件名import函数名
2.相对路径和绝对路径导入
在查找文件的时候,模块的查找始终以执行文件所在的路径为准
2.1绝对导入
它始终以执行文件所在的sys.path路径为基准查找。
2.2相对导入
.(句点符)
.(代表的是当前路径)
..(代表的是上一级的路径 )
相对导入可以大破始终以执行文件及准的查找顺序。
from.文件地址 import 文件名
from 文件相对路径import文件名
只要py.文件中出现了相对导入语句(.开头的语句),那么,这个文件就不再是执行文件了,只能被导入。
3.包的使用
3.1定义
就是文件夹,其实就是文件夹中包含了很多的py文件(模块)。包也就是一系列模块的组合。
3.2包和模块的区别
包中有一个特殊的文件:__init__.py文件。导包其实就是在导包里面的__init__.py文件。
4.软件开发的目录规范
4.1定义
软件开发的目录规范就是跟项目中得文件夹起合适的名字
4.2项目名
在你命名项目名的时候一定要见名识意且不能用中文字
bin放启动文件的run.py start.py manage.py...
如果文件的名字只有一个,也可以不要bin文件,可以把启动文件放在项目的跟下。
conf (config:配置)
放在项目的配置文件
settings.py
就是一些初始化的文件数据
core:核心的写一些核心逻辑 的数据
lib:库在这边一般写一些项目的公共代码
log:日志就是记录一些在代码运行中发生的事情,可以是正确的也可以是一些异常的。
db:和项目相关的数据存储的文件
api:接口
setup.py:和下载模块相关的
readme:项目的说明书
5.正则表达
import re
phone_number = input('please input your phone number : ')
if re.match('^(13|14|15|18)[0-9]{9}$',phone_number):
print('是合法的手机号码')
else:
print('不是合法的手机号码')
5.1定义
利用一些特殊符号匹配出我们想要的数据正则表达式它是一门独立的语言,跟pyth,java等语言没有关系的,所以,如果想在python中使用,我们需要借助于re模块的内置impor re。
6.字符组
[0123456789] # 0-9之间的数字
[0-9] # # 0-9之间的数字
[A-Z] # # A-Z之间的字母
[a-z] # # a-z之间的字母