import
from math import *
当你导入一个模块,Python 解析器对模块位置的搜索顺序是:
1、当前目录
2、如果不在当前目录,Python 则搜索在 shell 变量 PYTHONPATH 下的每个目录。
3、如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/。
模块搜索路径存储在 system 模块的 sys.path 变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。
import math
content = dir(math)
dir() 函数一个排好序的字符串列表,内容是一个模块里定义过的名字。
返回的列表容纳了在一个模块里定义的所有模块,变量和函数。
将整个模块(somemodule)导入,格式为: import somemodule
从某个模块中导入某个函数,格式为: from somemodule import somefunction
从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc
将某个模块中的全部函数导入,格式为: from somemodule import *
reload(module_name) 用于重新载入之前载入的模块。
当一个模块被导入到一个脚本,模块顶层部分的代码只会被执行一次。
因此,如果你想重新执行模块里顶层部分的代码,可以用 reload() 函数。该函数会重新导入之前导入过的模块。
'''
__import__() 函数用于动态加载类和函数 。如果一个模块经常变化就可以使用 __import__() 来动态载入。 __import__('a') # 导入 a.py 模块
file
f=open("a.txt")
fo = open("foo.txt", "w")
#open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
'''
file: 必需,文件路径(相对或者绝对路径)。
mode: 可选,文件打开模式
buffering: 设置缓冲
encoding: 一般使用utf8
errors: 报错级别
newline: 区分换行符
closefd: 传入的file参数类型
opener:
'''
print ("文件名: ", fo.name)
print ("是否已关闭 : ", fo.closed)
print ("访问模式 : ", fo.mode)
#print ("末尾是否强制加空格 : ", fo.softspace)
fo.write('aaa')
fo = open("foo.txt", "r")
str=fo.read(3)
print(str)
# 查找当前位置
position = fo.tell()
# 把指针再次重新定位到文件开头
position = fo.seek(0, 0)#seek(offset [,from])
#如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置。
fo.close()
'''
1
file.close()
关闭文件。关闭后文件不能再进行读写操作。
2
file.flush()
刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。
3
file.fileno()
返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。
4
file.isatty()
如果文件连接到一个终端设备返回 True,否则返回 False。
5
file.next()
返回文件下一行。
6
file.read([size])
从文件读取指定的字节数,如果未给定或为负则读取所有。
7
file.readline([size])
读取整行,包括 "\n" 字符。
8
file.readlines([sizeint])
读取所有行并返回列表,若给定sizeint>0,则是设置一次读多少字节,这是为了减轻读取压力。
9
file.seek(offset[, whence])
设置文件当前位置
10
file.tell()
返回文件当前位置。
11
file.truncate([size])
截取文件,截取的字节通过size指定,默认为当前文件位置。
12
file.write(str)
将字符串写入文件,返回的是写入的字符长度。
13
file.writelines(sequence)
向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。
'''
'''
File 对象方法: file 对象提供了操作文件的一系列方法。
OS 对象方法: 提供了处理文件及目录的一系列方法。
'''
try:
fh = open("testfile", "w")
fh.write("这是一个测试文件,用于测试异常!!")
except IOError:#except: 或者 except(Exception1[, Exception2[,...ExceptionN]]]):
print ("Error: 没有找到文件或读取文件失败")
else:#如果没有异常发生
print ("内容写入文件成功")
finally:#推出try总会执行
print("Error: 没有找到文件或读取文件失败")
fh.close()
#python3中没有
#file(name[, mode[, buffering]])
#buffering -- 0 表示不缓冲,如果为 1 表示进行行缓冲,大于 1 为缓冲区大小。
f = file('test.txt')
f.read()
others
a=abs(-2)#2
a=divmod(3,2)#(a // b, a % b)
a=input("write:")
a=raw_input('write:') python3没有
all(iterable),如果iterable的所有元素不为0、''、False或者iterable为空,all(iterable)返回True,否则返回False;
any(iterable),如果都为空、0、false,则返回false,如果不都为空、0、false,则返回true。
pow(x, y[, z]) 等价于pow(x,y) %z; 也可以用math库:math.pow( x, y )
sum((2, 3, 4), 1) #10
sum([0,1,2,3,4], 2)
sum([0,1,2])
round() 方法返回浮点数x的四舍五入值。
eval('pow(2,2)') #执行字符串表达式,并返回一个对象
exec 执行储存在字符串或文件中的Python语句,相比于 eval,exec可以执行更复杂的 Python 代码。
execfile('hello.py') 执行文件
isinstance() 与 type() 区别:type() 不会认为子类是一种父类类型,不考虑继承关系。
isinstance (a,int);isinstance (a,(str,int,list)) # 是元组中的一个返回 True
isinstance("Hello world", str);isinstance("Hello world", basestring);
isinstance(obj, basestring) 等价于 isinstance(obj, (str, unicode))。
issubclass(B,A) 判断是否为子类
print('a','b', sep=' ', end='\n', file=sys.stdout)#间隔sep,结尾end,写入对象file
print在python2中只是一个关键字,print a,b
class A:
pass
class B(A):
def add(self, x):
super().add(x) #调用父类
lst = [1, 2, 3]
for i in iter(lst): #iter用来生成迭代器
print(i)
it = iter([1, 2, 3, 4, 5])
x = next(it)#1
x = next(it)#2
en() 方法返回对象(字符、列表、元组等)长度或项目个数。
range(start, stop[, step]) 创建一个整数列表
xrange() 与range区别是生成的不是一个数组,而是一个生成器。python3没有
def hexPos(num):#将一个整型num转为16进制字节类型
val = hex(int(num))[2:]#2e1d8
if len(val) % 2 != 0:
val = '0' + val
y = bytearray.fromhex(val)
if len(y) != 4:
x = bytearray(4 - len(y))
return bytes(x + y)
print(hexPos(188888))#b'\x00\x02\xe1\xd8'
#在新式类中返回属性值。
class C(object):
def __init__(self):
self._x = None
def getx(self):
return self._x
def setx(self, value):
self._x = value
def delx(self):
del self._x
x = property(getx, setx, delx, "I'm the 'x' property.")
c= C()
a=c.x
c.x=10
del c.x
#也可以用作装饰器
class C(object):
def __init__(self):
self._x = None
@property
def x(self):
"""I'm the 'x' property."""
return self._x
@x.setter
def x(self, value):
self._x = value
@x.deleter
def x(self):
del self._x
c=C()
a=c.x
c.x=10
del c.x
callable() 函数用于检查一个对象是否是可调用的。
locals() 函数会以字典类型返回当前位置的全部局部变量。
globals() 函数会以字典类型返回当前位置的全部全局变量。
#educe() 函数在 python 2 是内置函数, 从python 3 开始移到了 functools 模块。
from functools import reduce
def add(x, y) : # 两数相加
return x + y
a=reduce(add, [1,2,3,4,5]) # 计算列表和:1+2+3+4+5 15
b=reduce(lambda x, y: x+y, [1,2,3,4,5]) # 使用 lambda 匿名函数 15
map
map(square, [1,2,3,4,5]) # 计算列表各个元素的平方
map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
filter
def is_odd(n): return n % 2 == 1 ;newlist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
def is_sqr(x): return math.sqrt(x) % 1 == 0 ;newlist = filter(is_sqr, range(1, 101))
vars() 函数返回对象object的属性和属性值的字典对象。
getattr() 函数用于返回一个对象属性值。
hasattr() 函数用于判断对象是否包含对应的属性。hasattr(object, name)
delattr(x, 'foobar') 相等于 del x.foobar。删除属性。
setattr() 函数对应函数 getattr(),用于设置属性值,该属性不一定是存在的。
>>>class A(object): ... bar = 1 ... >>> a = A()
>>> getattr(a, 'bar') # 获取属性 bar
>>> setattr(a, 'bar', 5) # 设置属性 bar 值
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
>>>a = [1,2,3] >>> b = [4,5,6] >>> zipped = zip(a,b) # 打包为元组的列表
compile() 函数将一个字符串编译为字节代码。
memoryview() 函数返回给定参数的内存查看对象(Momory view)。
id() 函数用于获取对象的内存地址。
hash() 用于获取取一个对象(字符串或者数值等)的哈希值。
help([object])
slice() 函数实现切片对象,主要用在切片操作函数里的参数传递。
>>>myslice = slice(5) # 设置截取5个元素的切片
>> arr = range(10)
>>> arr[myslice] # 截取 5 个元素
[0, 1, 2, 3, 4]
dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。
sorted() 函数对所有可迭代的对象进行排序操作。
>>>a = [5,7,6,3,4,1,2] >>> b = sorted(a) # 保留原列表
del