"""
1. 先从内存中查找
2. 再从内置模块中查找
3. 最后去环境变量sys.path中查找
如果以上都找不到,直接报错!
"""
"""如果找不到,那就去sys.path中查找"""
import sys
print ( sys. path)
[ 'D:\\Python27\\day20' , 'D:\\Python27\\day20' , 'D:\\PyCharm 2021.1.3\\plugins\\python\\helpers\\pycharm_display' , 'D:\\Python38\\python38.zip' , 'D:\\Python38\\DLLs' , 'D:\\Python38\\lib' , 'D:\\Python38' , 'C:\\Users\\oldboy\\AppData\\Roaming\\Python\\Python38\\site-packages' , 'D:\\Python38\\lib\\site-packages' , 'D:\\PyCharm 2021.1.3\\plugins\\python\\helpers\\pycharm_matplotlib_backend' ]
以后遇到模块找不到的情况:
1. 把模块所在的路径添加到sys. path中
import sys
sys. path. append( r'D:\Python27\day20\aaa\bbb' )
2. 使用from . . . import 句式
from aaa. bbb. ccc import m1
from aaa. bbb. ccc. m1 import f1
f1( )
m1. f1( )
相对导入和绝对导入
"""在导入模块的时候,模块的查找始终以执行文件所在的路径为准"""
绝对导入:
它始终是以执行文件所在的sys. path路径为基准查找
相对导入:
"""
.(句点符)
. 代表的是当前路径
.. 代表的是上一级路径
"""
from . ccc import m2
from . ccc. ddd import m2
只要py文件中出现了相对导入语句( . 开头的语句) ,那么,这个文件就不能当成执行文件了,只能被导入
包的使用
什么是包?
就是文件夹,其实就是文件夹中包含了一些列的py文件( 模块)
包和模块有什么区别呢?
包中有一个特殊文件:__init__. py文件
"""导包其实就是在导包下的__init__.py文件的!"""
软件开发目录规范
软件开发目录规范就是跟项目中得文件夹起合适的名字的!
项目名:
bin
如果你的启动文件只有一个,也可以不要bin 文件夹,可以把启动文件写在项目的跟下
conf ( config: 配置)
settings. py
'''就是一些初始化的数据'''
core
src. py
def login ( ) :
pass
def register ( ) :
pass
lib
common. py
def outer ( ) :
pass
log
log. log
db
跟项目相关的数据存储都存在db、data
api/
setup. py
| - - requirements. txt
taobao
time
os
requests
xml
. . .
reqeusts == 1.11 .1
xml = 1.1 .1
| - - README
下周要讲的ATM项目用的就是这个
正则表达式
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 ( '不是合法的手机号码' )
正则表达式:
利用一些特殊的符号匹配出我们想要的数据
正则表达式它是一门独立的语言,跟Python、Java等语言没有关系的
所以,如果想在Python中使用正则表达式,需要借助于re模块,内置的
import re
"""我们只学习正则的基础,就学习一些简单的正则够我们开发使用就行了"""
字符组
[ 0123456789 ]
[ 0 - 9 ]
[ A- Z]
[ a- z]
匹配:0 - 9a- zA- Z之间的任意一个
[ 0 - 9A- Za- z]
[ 0 - 9A- Xa- f]