Python(18)自定义模块及系统模块

一、自定义模块

当你导入一个模块,python解释器对模块位置的搜索顺序是:
1、当前目录
2、如果不在当前目录,Python则搜索在shell变量 PYTHONPATH 下的每个目录。
3、如果都找不到,Python会查看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/。
模块搜索路径存储在system模块的 sys.path变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。

自定义模块
系统模块:
sys  系统system模块

右键 —— Mark Directory as Sources Root
将包作为搜索路径

自定义模块格式:

自定义模块:
xxx.py
import xxx

from xxx import xx

from xxx import *  __all__ = []

__name__ ---> 自己: __main_
         ---> 别的使用: 模块名
         
包:
user
    __init__.py  只要包的导入,都会默认执行__init__.py文件    __all__ = [想要暴露的模块]  from 包名 import *
    xxx.py
    xx.py
        add
article
    aa.py
    
bb.py
    
from user.xx import add
add()

循环导入:避免
1、重构代码
2、将导入语句放到函数中
3、把导入语句放到模块最后

 

二、系统模块

1、sys模块    system系统模块

sys:  sys.path  sys.version  sys.argv
import sys
#路径列表
print(sys.path)

#python版本
print(sys.version)

#执行时,给python解释器传递参数    pycharm右上角文件名,Edit Configurations,在Parameters中填入参数
#运行程序时的参数
print(sys.argv)    #打印['D:/.../PracticeProject/PythonProject/test.py', '100']

2、time  时间模块

time模块
1、时间戳

重点:
time()
sleep()
strftime(格式)  %Y %m %d
了解:
t = time.localtime(t)
元组---> t.tm_year  t.tm_mon
import time

t = time.time()
print(t)        #1585206103.8941765   秒.精确值

# time.sleep(3)

t1 = time.time()
print(t1)

# 将时间戳转成字符串
s = time.ctime(t)
print(s)    #Thu Mar 26 15:04:25 2020

# 将时间戳转成元组
lt = time.localtime(t)
print(lt)   #time.struct_time(tm_year=2020, tm_mon=3, tm_mday=26, tm_hour=15, tm_min=5, tm_sec=18, tm_wday=3, tm_yday=86, tm_isdst=0)
print(lt.tm_yday)   #86
print(lt.tm_hour)   #15

# 将元组的时间戳 转成 时间戳, 只返回到秒
t2 = time.mktime(lt)
print(t2)   #1585206460.0

# 底层将时间戳转成元组,再将元组的时间转成字符串
s = time.strftime('%Y-%m-%d %H:%M:%S')
print(s)    #2020-03-26 15:13:08

# 将字符串转成元组的方式
r = time.strptime('2020/03/26', '%Y/%m/%d')
print(r)    #time.struct_time(tm_year=2020, tm_mon=3, tm_mday=26, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=86, tm_isdst=-1)

3、datetime  日期时间模块

datetime 模块:
time  时间
date  日期  (data 数据)
datetime  日期时间  now()
timedelta  时间差/时间增量  timedelta(days=, weeks=)
import datetime

print(datetime.time.hour)  #对象
print(time.localtime().tm_hour)

#因为date是类,所以要求创建对象
d = datetime.date(2020, 3, 26)
print(d.day)
print(datetime.date.ctime(d))

#datetime  日期时间
#timedelta  两个datetime 日期的差
print(datetime.date.today())

#时间差
time_del = datetime.timedelta(hours=2)

#datetime.datetime.now()  --->得到当前的日期和时间
now = datetime.datetime.now()
print(now)
result = now + time_del
print(result)
缓存: 数据redis(key,value类型数据库)  作为缓存    大数据分析/集群:redis分布式缓存    redis.set(key, value, 时间差)
会话:session  内存缓存

4、random  随机模块

random.random()     0~1之间随机数

random.randrange(1, 10, 2)     1~9,不包含10

random.randint(1, 10)  1~10之间随机数

random.choice(list1)    随机选择列表中的某一元素

random.shuffle(list1)    打乱列表

import random
ran = random.random()  #0~1之间的随机小数
print(ran)

ran = random.randrange(1, 10, 2)  #randrange(start, stop, step)  不包含stop
print(ran)

ran = random.randint(1, 10)  #包含a, b
print(ran)

list1 = ['name1', 'aa', 'bbb', 'ccccc']
ran = random.choice(list1)  #随机选择列表的内容
print(ran)

#洗牌
r = random.shuffle(list1)   #打乱顺序
print(list1)

#验证码  大小写字母与数字的组合
def func():
    code = ''
    for i in range(4):
        ran1 = str(random.randint(0, 9))
        ran2 = chr(random.randint(65, 90))
        ran3 = chr(random.randint(97, 122))

        r = random.choice([ran1, ran2, ran3])
        code += r
    print(code)

func()

5、chr    Unicode码 ------>  str

ord    str  ------>  Unicode码

print(chr(65))
print(ord('A'))

print(ord('上'))  #19978
print(ord('下'))  #19979

print(chr(19979))

6、标准库中函数

print()    input()    list()    str()    dir()    tuple()    int()    set()

chr()    ord()    bin()    hex()    oct()    isinstance()

7、加密算法

hashlib    散列/哈希算法    包含:md5    sha1    sha256      加密后不能解密

base64    常用加密解密算法

import hashlib

msg = "this is important message"
md5 = hashlib.md5(msg.encode('utf-8'))
print(md5.hexdigest())  #十六进制加密  32位

sha1 = hashlib.sha1(msg.encode('utf-8'))
print(sha1.hexdigest())  #40位

sha256 = hashlib.sha256(msg.encode('utf-8'))
print(sha256.hexdigest())   #64位

password = '123456'
list1 = []
sha256 = hashlib.sha256(password.encode('utf-8'))
list1.append(sha256.hexdigest())

psd = input('请输入密码:')

for i in list1:
    cur_sha256 = hashlib.sha256(psd.encode('utf-8'))
    if cur_sha256.hexdigest() == i:
        print('输入密码正确!')
        break
else:
    print('输入密码错误!')

8、第三方库

图片处理库    pillow

http  get、post请求    requests

导入库的两种方式:

1、在Pycharm  下方Terminal,输入pip install  库名

2、File——>Settings——>Project:项目名——>Project Interpreter(项目解释器)——>点击右侧 + 号 ,在填出界面的搜索框中输入需要导入的库名称——>点击Install Package——>等待导入完成

import requests
response = requests.get('https://baidu.com/')
print(response.text)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值