(4)Python基础:内置函数

 

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'

bytes和bytearray区别

使用property的好处

#在新式类中返回属性值。
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

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值