小结
模块的四种形式
import time
import requests
import os
模块:模块就是一个py文件,只是这个文件里有一大堆函数,有一堆功能可以调用
模块的四种形式:1. 自定义模块,就是自己建立的一个py文件,在里面写了函数功能,可以调用其功能
- 第三方模块:需要自己安装,python有13万个第三方库
- 内置模块:python解释器自带的,不需要安装
- 包 ---》含有__inti__.py的文件夹,是一种特殊的模块
import time
print(time.time())# import 模块方法调用形式
from time import time
print(time()) # from...import 模块方法调用形式
import 和 from ...import
如果把Python看成一部手机,那pip是应用管家,time就是应用管家里的一个应用,要用它就 import
import time
time.timme()
print(time.time())
使用import 发生的三件事
- 在内存中生成一块time的名称空间
- 运行time.py文件,然后把把time.py的名称空间放入time的名称空间
- 把time的名称空间指向import 或 from ...import .py(当前导入time模块的文件)的名称空间中
使用import time导入的时候,使用方法只能 time.方法名(), 不能直接用方法名
# from time import gmtime
# print(gmtime())#time.struct_time(tm_year=2019, tm_mon=8, tm_mday=15, tm_hour=6, tm_min=39, tm_sec=45, tm_wday=3, tm_yday=227, tm_isdst=0)
#
# from time import gmtime,time
# print(gmtime())#time.struct_time(tm_year=2019, tm_mon=8, tm_mday=15, tm_hour=6, tm_min=41, tm_sec=14, tm_wday=3, tm_yday=227, tm_isdst=0)
#
# print(time())#1565851185.9377718
# from time import * # 用*号可以取出里面所有功能,但是容易造成变量名冲突,不推荐使用
# print(time())
# print(gmtime())
# __all__可以限制 from time import *
# 但是限制不了 from time import (方法名) 和 import ...
运行from...import发生的三件事
- 在内存中生成一个叫time的名称空间
- 运行time.py文件,把time.py文件内的名称空间放入time的名称空间
- 把time方法指向from...import.py(当前导入time模块的文件)的名称空间
循环导入问题
循环导入就是如:我在当前文件中导入m2模块的时候m2模块文件同时也在导入我当前的文件,然后造成了两个模块都不能正常导入运行的问题
解决方法:把导入模块代码放入def 函数中,把需要导入的方法放在函数外,这样运行是选在全局空间中成功导入需要的方法,然后在运行def 函数运行下面的代码块进行相应的操作
模块的搜索路径
- 首先先从内存中找
- 然后从内置中找
- 然后再是从自定制中找
- 最后是在环境变量中找
python文件的两种用途
- 执行文件:当前运行的文件就叫做执行文件
- 模块文件:导入模块的文件就是模块文件
执行文件和模块文件是相对的
注:当m1为执行文件时,__ _name _ ==' _ _main _ _';当m1被模块文件导入时 _ _ name _ _== m1
然后就可以设置:if _ _name _ _==' _ _ main _ _': print(x), 否则不打印
random模块
最常用的方法
import random
# random()随机打印0-1内的小数
#print(random.random()) #0.6068056354638482 随机生成
#randint() # 随机打印一个整数,范围自己用参数定
#print(random.randint(0,100)) #99 随机打印
#shuffle() # 打乱容器类元素---》列表
#lt = [1,2,3,4,5]
#random.shuffle(lt)
#print(lt)
举例随机函数
def choice(lt):
ind = random.randint(0,len(lt)-1)
return lt[ind]
print(choice([1,2,3,4,'a','b']))# 随机选出一个数