第二节、import

使用import语句导入模块,import语句语法如下:
import module
关键字 模块名

使用方法例如:
import math       #入导math模块
math.floor()        #调用math模块中的floor()

如果要同时导入多个模块,只需要在模块名之前用逗号进行分隔:
import module1,module2,module3.......

同时导入多个模块的方法,对于初学者来说可读性和可理解性不如第一种好。所以想要导入多个模块时,还是比较推荐用第一种方式,把每一个模块都单独进行一次导入,可能会感觉操作起来麻烦一些,但便于理解。

在用import语句导入模块时最好按照这样的顺序:

1、python 标准库模块
2、python 第三方模块
3、自定义模块

from...import...

from module import name

关键字 模块名 关键字 方法名

例如入导函数math模块中的floor函数方法:
from math import floor

from math import floor     #导入math模块中的floor函数方法
floor()                         #调用floor()函数方法

 

 

第三节、包

sound/                          Top-level package
     __init__.py               Initialize the sound package

     test.py 
     formats/                  Subpackage for file format conversions
             __init__.py
             wavread.py
             wavwrite.py
     effects/                  Subpackage for sound effects
             __init__.py
             echo.py
             surround.py
             reverse.py

当导入包以后,python通过sys.path中的目录来寻找包的子目录。 每一个包都必须有__init__.py,这样做是为了防止某些目录有一个共同的名字。在最简单的情况下,__ init__.py可以只是一个空文件,但它也可以执行包的初始化代码,包括设置__all__变量,稍后介绍。 我们可以从包中导入单个模块,import一个包名,就等于执行了这个包下的__init__文件。

1、主程序与模块程序在同一目录下: 例如test要调用其他py,如果同级的直接import,如果当前目录下能够找到要调用的包,可以直接from包import模块

2、主程序所在目录是模块所在目录的父(或祖辈)目录。如echo.py 调用上级test或其他目录的wavread 

1 import sys,os
2 BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))  #__file__获取执行文件相对路径,整行为取上一级的上一级目录
3 sys.path.append(BASE_DIR)  #添加路径=
import test
import  formats.wavread


一、内置函数
1.abs():绝对值
2.all(Iterable): 可迭代对象里面每个元素都为真,函数为真
3.any(Iterable):可迭代对象里面只要有一个元素为真,函数为真
4.ascii(object):把一个对象转换成可打印的字符串的形式
5.bin(x): 十进制转二进制    oct(x)   hex(x)
6.bool():
7.bytearray():
8.bytes():unicode —— encode——utf-8
9.callable():检测一个对象能否被调用
10.chr(): asscii对应的数字转化成字符 (chr(65))           (ord(‘#’))字符转化成数字
11.classmethod():
   staticmethod
   property
 
12.complie():
s='for i in range(10):print(i,x)'
code=compile(s,'','exec')
print(code)
exec(code,{},{'x':1111})
 
13.complex():复数   float int str list tuple  dict set  frozenset   数据类型
14.delattr():反射
hasattr
setattr
 
15.dict()
16.dir():  print(dir(sys)):查看一个名字后面的属性
17.divmod():  商跟余数  print(divmod(10,3))   结果:(3,1)
18.enumerate():
  I=[‘a’,’b',’c’]
  res=enumerate(I)
for i in res:
(0,’a')
(1,’b')
(2,’c')
19.eval():指定作用域 
20.exec():
21.filter():    
filter(lambda name:name.endswith(’SB’),names)
 
22.float()
23.format()
24.frozenset(): 集合用法同set ,不同点:不可变集合
25.getattr()
26.globals():查看全局作用域    locals():查看局部作用域
27.hasattr():
28.hash():检验一个字符串   hash(‘bcklasv')
29.help():查看帮助信息
30.hex():
31.id(x):反应出来x在内存里面的位置 只是python解释器实现的功能  不是内存地址
32.input():
33.int()
34.isinstance(x,int):x是不是int的一个实例
35.issubclass()
36.iter():迭代器
37.len():长度
38.list():列表
39.locals()
40.map():映射
name=['da','dc','bs']
print(list(map(lambda x:x+'hs',name )))
 
 
41.max():最大值   元组可以一一对应比大小
salaries={
    'egon':3000,
    'alex':100000000,
    'wupeiqi':10000,
    'yuanhao':2000
}
print(list(zip(salaries.values(),salaries.keys())))
[(3000, 'egon'), (100000000, 'alex'), (10000, 'wupeiqi'), (2000, 'yuanhao’)]
print(max(zip(salaries.values(),salaries.keys())))
print(max(salaries,key=lambda name:salaries[name]))
(100000000, 'alex')
alex
key是函数的内存地址
 
42.memoryview():
43.min():最小值
44.next():
45.object():
46.oct()
47.open():
48.ord()
49.pow():    print(pow(x,y,z)) x的y次方再取模
50.print()
51.property():
52.range():
 
53.repr():  把对象转化成字符串形式   与str相似
54.reversed(): 反转 一下产生一个新的列表
55.round():   round(3.478,2)
 
56.set():
57.serattr():
58.slice():切片  
slice(0,4,2) 【 起始 结束  步长   】相当于 I[0:4:2]
59.sorted():排序  
sorted(I,reverse=True 从小到大)
60.staticmethod():
61.str()
62.sum():
63.super():
64.tuple():
65.type():
66.vars():  
print(vars(m1)==m1.__dict__)   True
67.zip():拉链函数
s=“hello”
I=[1,2,3,4,5]
res=zip(s,l)
print(list(zip(s,l)))
[(‘h’,1),(‘e’,2),(‘l’,3),(‘l’,4),(‘o’,5)]
 
68__import__():  
 __import__(’sys’)==sys
 
二、正则表达式
\w:字母数字下划线
\W:非字母数字下划线
import re
print(re.findall('\w','hello egon 123')) 
['h', 'e', 'l', 'l', 'o', 'e', 'g', 'o', 'n', '1', '2', '3']
print(re.findall('\W','hello egon 123')) 
[' ', ' '] 
\s:匹配任意空白字符    \t:制表符 \n:换行 \r:回到行首 \f:
\S:匹配任意非空白字符
print(re.findall('\s','hello  egon  123')) 
[' ', ' ', ' ', ' ']
print(re.findall('\S','hello  egon  123')) 
['h', 'e', 'l', 'l', 'o', 'e', 'g', 'o', 'n', '1', '2', '3']
\d:匹配任意数字
\D:匹配任意非数字
print(re.findall('\d','hello egon 123')) 
['1', '2', '3']
print(re.findall('\D','hello egon 123')) 
['h', 'e', 'l', 'l', 'o', ' ', 'e', 'g', 'o', 'n', ' ']
\A:从头开始匹配相当于^
print(re.findall('\Ahe','hello egon 123')) 
print(re.findall(‘^he','hello egon 123')) 
['he’] 
\Z:从尾部开始
相当于$
print(re.findall(‘123\Z','hello egon 123')) 
print(re.findall(‘123$','hello egon 123')) 
[‘123']
 
. [ ] [^]
. 代表一个字符(换行符排除在外)
print(re.findall('a.c’,’a a1c a*c a2c abc a c aaaaaac')) 
[‘a1c’ ‘a*c’ ‘a2c’ ‘abc’ ‘a c’ ‘aac’]
print(re.findall('a.c’,’a a1c a*c a2c abc a\nc,re.DOTALL’))
print(re.findall('a.c’,’a a1c a*c a2c abc a\nc,re.S’))
[‘a1c’ ‘a*c’ ‘a2c’ ‘abc’ ‘a\nc’]
[ ]内部可以有多个字符,但是本身只配多个字符中的一个
print(re.findall(‘a[1 23]c’,’a a1c a*c a2c a c a\nc,re.S’))
[‘a1c’  ‘a2c’ ‘a c’]
[^]代表不含中括号里面的字符
print(re.findall(‘a[a-zA-Z]c’,’aac abc aAc a12c a1c a*c a2c a c a\nc’))
print(re.findall(‘a[^a-zA-Z]c’,’aac abc aAc a12c a1c a*c a2c a c a\nc’))
 [‘aac’,’abc’,’aAc’]
[‘a1c’,’a*c’,’a2c’,’a c’,’a\nc’]
\:转义符号
print(re.findall(‘a\\c’,’a\c abc')) 错误
print(re.findall(‘a\\\\c’,’a\c abc’))
print(re.findall(r‘a\\c’,’a\c abc'))
[‘a\\c’]
 
? * + {}
?左边那一个字符有0个或者1个
print(re.findall('ab?','a')) 
['a']
print(re.findall('ab?','abbb')) 
['ab']
.*默认为贪婪匹配
print(re.findall('a.*b','a1b22222222b')) #['a1b22222222b']
.*?为非贪婪匹配:推荐使用
print(re.findall('a.*?b','a1b22222222b')) #['a1b']
():分组
print(re.findall('ab+','ababab123')) #['ab', 'ab', 'ab']
print(re.findall('(ab)+123','ababab123')) #['ab'],匹配到末尾的ab123中的ab
print(re.findall('(?:ab)+123','ababab123')) #findall的结果不是匹配的全部内容,而是组内的内容,?:可以让结果为匹配的全部内容
|
print(re.findall('compan(?:y|ies)','Too many companies have gone bankrupt, and the next one is my company'))
 
三、time模块
时间戳:

import time
print(time.time()) 
print(time.strftime("%Y-%m-%d %X"))

print(time.localtime()) 

print(time.gmtime())

 
四、random模块
import random

print(random.random())

#(0,1)----float 大于0且小于1之间的小数

print(random.randint(1,3))

#[1,3] 大于等于1且小于等于3之间的整数


print(random.randrange(1,3))

#[1,3) 大于等于1且小于3之间的整数

print(random.choice([1,'23',[4,5]]))

#1或者23或者[4,5]

print(random.sample([1,'23',[4,5]],2))

#列表元素任意2个组合

print(random.uniform(1,3))

#大于1小于3的小数,如1.927109612082716 

五、os

os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd
os.curdir 返回当前目录: ('.')
os.pardir 获取当前目录的父目录字符串名:('..')
os.makedirs('dirname1/dirname2') 可生成多层递归目录
os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirname
os.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir('dirname') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove() 删除一个文件
os.rename("oldname","newname") 重命名文件/目录
os.stat('path/filename') 获取文件/目录信息
os.sep 输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
os.linesep 输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
os.pathsep 输出用于分割文件路径的字符串 win下为;,Linux下为:
os.name 输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
os.system("bash command") 运行shell命令,直接显示
os.environ 获取系统环境变量
os.path.abspath(path) 返回path规范化的绝对路径
os.path.split(path) 将path分割成目录和文件名二元组返回
os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basename(path) 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path) 如果path是绝对路径,返回True
os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False
os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间
os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间
os.path.getsize(path) 返回path的大小

 
六、sys
sys.argv 命令行参数List,第一个元素是程序本身路径
import sys
print (sys.argv[0])
print (sys.argv[1])
python3 sys.py glj

sys.py

 glj
sys.exit(n) 退出程序,正常退出时exit(0)
sys.version 获取Python解释程序的版本信息
sys.maxint 最大的Int值
 
sys.path :
获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到。
返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
import sys
print(sys.path)

['/Users/gelujing/Desktop/project/Day6', '/Users/gelujing/Desktop/project', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python36.zip', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages']
 
sys.platform 返回操作系统平台名称
posted on 2018-01-12 11:32  小白凹凸曼  阅读(117)  评论(0编辑  收藏  举报