在终端窗口运行python程序:python python文件名.py
模块
导入模块
import 模块 (模块是不带.py拓展的其他python文件名);
用report.函数名,就可以在主程序中使用子程序的函数
#report1.py 子程序
def get_description():
from random import choice
poss = ['rain','snow','sleet','fog','sun','who konws']
return choice(poss)
#weather.py 主程序
import report1
des = report1.get_description()
print(des)
使用别名导入模块
import 文件名 as 别名
#weather.py 主程序
import report1 as re
des = re.get_description()
print(des)
导入模块的一部分
from 文件名 import 函数名 as 别名
from report1 import get_description as get1
des = get1()
print(des)
模块搜索路径
使用储存在标准sys模块 下的目录名和ZIP文件列表作为path变量,可以读取和修改该列表;
第一个匹配到的模块会被先使用。
import sys
for place in sys.path:
print(place)
'''
E:\python\python_venv\env\Scripts\python.exe E:/python_study/venv/study05.py
E:\python_study\venv
E:\python_study
E:\python_study\dict1
D:\pycharm\PyCharm 2019.3.3\plugins\python\helpers\pycharm_display
d:\python3\python39.zip
d:\python3\DLLs
d:\python3\lib
d:\python3
E:\python\python_venv\env
E:\python\python_venv\env\lib\site-packages
D:\pycharm\PyCharm 2019.3.3\plugins\python\helpers\pycharm_matplotlib_backend
'''
包
多个模块组成的文件层次。
在要被当作包的目录下需要添加一个文件:__init__.py ,该文件可以为空,该文件可把该目录当成一个包
#daily.py
def forecast():
return 'like yesterday'
#weekly.py
def forecast():
return ['rain','snow','sleet','fog','sun','who konws']
#weather.py
from sources import daily,weekly
print('daily:',daily.forecast())
print('weekly:')
for number, outlook in enumerate(weekly.forecast(),1):
print(number,outlook)
'''
daily: like yesterday
weekly:
1 rain
2 snow
3 sleet
4 fog
5 sun
6 who konws
'''
python标准库
setdefault() defaultdict() 处理缺失的键。
字典.setdefault(键,值)
setdefault() 处理的键不在字典中,新的默认值会被添加到字典中;
>>> dict1 = {'a':1,'b':2}
>>> dict1.setdefault('c',3)
3
>>> dict1
{'a': 1, 'b': 2, 'c': 3}
>>> dict1.setdefault('d')
>>> dict1
{'a': 1, 'b': 2, 'c': 3, 'd': None}
setdefault() 处理的键已经在字典中,还会返回原本的初始值,不会改变原来的值;
>>> dict1 = {'a':1,'b':2}
>>> dict1.setdefault('c',3)
3
>>> dict1
{'a': 1, 'b': 2, 'c': 3}
>>> dict1.setdefault('c',4)
3
>>> dict1
{'a': 1, 'b': 2, 'c': 3}
defaultdict() 参数是一个函数,返回赋给缺失的键
。。。。。。。。