python模块分为系统内置的模块、第三方的模块和用户编写的模块
默认情况下,python第三方的模块安装在python 的安装目录下site-packages下,以文件或者目录的形式存放
用户模块,程序模块化对区分功能和结构,代码清晰度有很好的帮助
默认情况下,在python运行时只是加载了少数的系统内置的模块,可以使用vars()查看
>>> print vars() {‘__builtins__‘: <module ‘__builtin__‘ (built-in)>, ‘__package__‘: None, ‘__name__‘: ‘__main__‘, ‘__doc__‘: None} >>> vars() {‘__builtins__‘: <module ‘__builtin__‘ (built-in)>, ‘__package__‘: None, ‘__name__‘: ‘__main__‘, ‘__doc__‘: None} >>> import time >>> print vars() {‘__builtins__‘: <module ‘__builtin__‘ (built-in)>, ‘__package__‘: None, ‘time‘: <module ‘time‘ (built-in)>, ‘__name__‘: ‘__main__‘, ‘__doc__‘: None}
python程序可以作为模块运行,也可以作为模块被倒入使用
如果调用 main 就时代表直接运行程序当前本身
被倒入文件命名要以.py结尾,并且需要在python python环境变量可以搜索到的位置
PYTHONPATH环境变量设定python导入模块的路径
在交互式的DILE或者命令行运行时,用户的cwd默认加入pythonpath变量中
零时性的修改可以修改sys.path
>>> import sys >>> sys.path [‘E:\\Note\\Python‘, ‘D:\\Python27\\Lib\\idlelib‘, ‘C:\\Windows\\system32\\python27.zip‘, ‘D:\\Python27\\DLLs‘, ‘D:\\Python27\\lib‘, ‘D:\\Python27\\lib\\plat-win‘, ‘D:\\Python27\\lib\\lib-tk‘, ‘D:\\Python27‘, ‘D:\\Python27\\lib\\site-packages‘] >>> sys.path.append(‘/tmp‘) >>> sys.path [‘E:\\Note\\Python‘, ‘D:\\Python27\\Lib\\idlelib‘, ‘C:\\Windows\\system32\\python27.zip‘, ‘D:\\Python27\\DLLs‘, ‘D:\\Python27\\lib‘, ‘D:\\Python27\\lib\\plat-win‘, ‘D:\\Python27\\lib\\lib-tk‘, ‘D:\\Python27‘, ‘D:\\Python27\\lib\\site-packages‘, ‘/tmp‘]
赋值语句,variables name=variables values
在定义变量名是不得使用系统关键字和特殊符号,变量值可以是任意的数据对象
变量名是未知的类型,变量名的类型取决于被赋予值的类型
链式赋值
a=b=c=100
将数字100分别的赋予给a,b,c
序列解包赋值
name,age,address=(‘keyman‘,27,‘BeiJing‘)
序列解包赋值变量名和变量值必须相等
import语句是也是一个赋值语句
improt socket 将socket模块倒入之后,赋值给scoekt
import语句是将python模块导入,模块应该放置在pythonpath目录下
import module name 或者 import module name as alias name
from module name import method 或者 from module name import method as alias name
import time #导入time模块 import time as t #导入time模块,并取别名t,以后使用time模块的方法时,将以t代替time,比如t.time() from math import sqrt #将math模块中的sqrt方法导入 from math import sqrt as q #将math模块中的sqrt方法导入,并取别名q
python预留的关键字可以使用keyword模块检查
keyword模块下的kwlist方法可以打印系统中所有的被预留的关键字
keyword模块下的iskeyword可判断对象是否是关键字
>>> import keyword >>> print keyword.kwlist [‘and‘, ‘as‘, ‘assert‘, ‘break‘, ‘class‘, ‘continue‘, ‘def‘, ‘del‘, ‘elif‘, ‘else‘, ‘except‘, ‘exec‘, ‘finally‘, ‘for‘, ‘from‘, ‘global‘, ‘if‘, ‘import‘, ‘in‘, ‘is‘, ‘lambda‘, ‘not‘, ‘or‘, ‘pass‘, ‘print‘, ‘raise‘, ‘return‘, ‘try‘, ‘while‘, ‘with‘, ‘yield‘] >>> print keyword.iskeyword(‘for‘) True >>> print keyword.iskeyword(‘list‘) False
在python2.6、2.7中print是一个语句,在python3.0中python,print是一个函数
print 连续打印多个对象,可以用‘,‘隔开
如果要使用多个print语句,但结果需要显示在一行,需要在print语句之后加上‘,‘
print ‘a‘ print ‘b‘, print ‘c‘ print ‘d‘,‘e‘ print(‘a‘)
执行结果为
a b c d e a
exec语句
exec 主要用于执行字符串内包含有python的代码
exec("print ‘hello world‘")
eval语句
eval 主要用于执行字符串内包含有python的算术表达式
exec("print (1+100-20)/2")
exec(‘print "hello world"‘) print eval(‘5+4*3‘)
执行结果为
hello world 17