python学习笔记4(模块)
一、模块
1.1 import语句
1.2 __name__属性
如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行。
# Filename: using_name.py
from jieba import lcut
if __name__=='__main__':
a='我真的好喜欢你'
s= lcut(a,cut_all=True)
print('\n程序自身在运行\n')
print(s)
else:
print('当作模块被调用')
第一种调用方式:python using_name.py
结果:
程序自身在运行
['我', '真的', '好', '喜欢', '你']
第二种模块调用方式:import using_name.py
结果:
当作模块被调用
1.3 dir()函数
内置的函数 dir() 可以找到模块内定义的所有名称。
import sys
dir(sys)
结果:
['__displayhook__', '__doc__', '__excepthook__', '__loader__', '__name__',
'__package__', '__stderr__', '__stdin__', '__stdout__',
'_clear_type_cache', '_current_frames', '_debugmallocstats', '_getframe',
'_home', '_mercurial', '_xoptions', 'abiflags', 'api_version', 'argv',
'base_exec_prefix', 'base_prefix', 'builtin_module_names', 'byteorder',
'call_tracing', 'callstats', 'copyright', 'displayhook',
'dont_write_bytecode', 'exc_info', 'excepthook', 'exec_prefix',
'executable', 'exit', 'flags', 'float_info', 'float_repr_style',
'getcheckinterval', 'getdefaultencoding', 'getdlopenflags',
'getfilesystemencoding', 'getobjects', 'getprofile', 'getrecursionlimit',
'getrefcount', 'getsizeof', 'getswitchinterval', 'gettotalrefcount',
'gettrace', 'hash_info', 'hexversion', 'implementation', 'int_info',
'intern', 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path',
'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'ps1',
'setcheckinterval', 'setdlopenflags', 'setprofile', 'setrecursionlimit',
'setswitchinterval', 'settrace', 'stderr', 'stdin', 'stdout',
'thread_info', 'version', 'version_info', 'warnoptions']
1.4 包
包是一种管理 Python 模块命名空间的形式,采用"点模块名称"。
sound/ 顶层包
__init__.py 初始化 sound 包
formats/ 文件格式转换子包
__init__.py
wavread.py
wavwrite.py
aiffread.py
aiffwrite.py
auread.py
auwrite.py
...
effects/ 声音效果子包
__init__.py
echo.py
surround.py
reverse.py
...
filters/ filters 子包
__init__.py
equalizer.py
vocoder.py
karaoke.py
2.1 导入特定模块:
方法一:import sound.effects.echo
全名访问:sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)
方法二:from sound.effects import echo
调用方式:echo.echofilter(input, output, delay=0.7, atten=4)
二、输入与输出
2.1 format使用
1、参数置空
print('{}说: "{}!"'.format('小四说', ‘我可真高啊'))
结果:小四说: "我可真高啊!"
2、参数为数字,指向format()中对象的位置
print('{0} likes {1}'.format('HanHan','pizza'))
print('{1} likes {0}'.format('HanHan','pizza'))
结果:HanHan likes pizza
pizza likes HanHan
3、使用关键字参数
print('{name}吃了{food}'.format(name='HanHan',food='pizza'))
结果:HanHan吃了pizza
2.2 读取键盘输入
str=input("please input:")
print('this is what you input:',str)
结果:please input:lalala
this is what you input: lalala