python内置方法

// An highlighted block
#python中提供了68个内部函数

#**********最重要****************************
l1=[33,2,3,34,55,-2,-8]

min(l1) #返回-8

min(l1,key=abs) #返回值为2 key为一个函数名

dic=dict(a=3,b=2,c=4)
min(dic) #返回为 a 默认按照键的名字去比较,循环谁返回谁

min(dic,key=lambda a:dic[a]) #这样写返回为b,实现以值比较大小

tianci=[('胡彦斌',38),('陶喆',50),('孟美岐',25),('张韶涵',35)] 

min(tianci) #返回('孟美岐',25)也是以键做的比较巧了

min(tianci,key=lambda b:b[1])  #返回('孟美岐',25)但是这样是以后面数字排得

max() #同min()的方法
sorted(tianci) #返回[('孟美岐', 25), ('张韶涵', 35), ('胡彦斌', 38), ('陶喆', 50)]也是以前面名字排得虽然看者结果相同

sorted(tianci,key=lambda c:c[1]) #返回[('孟美岐', 25), ('张韶涵', 35), ('胡彦斌', 38), ('陶喆', 50)]虽然看者结果相同但是这是以值排得

sorted(tianci,key=lambda c:c[1],reverse=True) #返回[('陶喆', 50), ('胡彦斌', 38), ('张韶涵', 35), ('孟美岐', 25)] 倒序

filter(lambda x:x[1]>35,tainci)#返回一个迭代器

list(filter(lambda x:x[1]>35,tainci)) #返回('陶喆', 50), ('胡彦斌', 38)

map(lambda x:(x[0],x[1]*2),tainci) #返回一个迭代器

list(map(lambda x:(x[0],x[1]*2),tainci)) #[('胡彦斌', 76), ('陶喆', 100), ('孟美岐', 50), ('张韶涵', 70)]

#***************************************重要的******************

 globals() #以字典方式返回全局中的信息变量
 
 locals() #以字典方式返回局部中的信息变量;一般用在函数内部
 
 eval()  #剥去字符串的唯一运算里面的代码
 
 eval('1+3')  #返回值为4
 
 exec() #与eval用法差不多但是返回值为None

exec(object[, globals[, locals]])
#这个函数支持动态执行 Python 代码。object 必须是字符串或者代码对象。如果是字符串,那么该字符串将被解析为一系列 Python 语句并执行(除非发生语法错误)。1 如果是代码对象,它将被直接执行。在任何情况下,被执行的代码都需要和文件输入一样是有效的(见参考手册中关于文件输入的章节)。请注意即使在传递给 exec() 函数的代码的上下文中,return 和 yield 语句也不能在函数定义之外使用。该函数返回值是 None 。

#无论哪种情况,如果省略了可选参数,代码将在当前范围内执行。如果提供了 globals 参数,就必须是字典类型,而且会被用作全局和本地变量。如果同时提供了 globals 和 locals 参数,它们分别被用作全局和本地变量。如果提供了 locals 参数,则它可以是任何映射型的对象。请记住在模块层级,全局和本地变量是相同的字典。如果 exec 有两个不同的 globals 和 locals 对象,代码就像嵌入在类定义中一样执行。

#如果 globals 字典不包含 __builtins__ 键值,则将为该键插入对内建 builtins 模块字典的引用。因此,在将执行的代码传递给 exec() 之前,可以通过将自己的 __builtins__ 字典插入到 globals 中来控制可以使用哪些内置代码。

 
 help(str) #帮助可以查看源代码
 
 callable() #判断一个变量是否可被调用
 
 int(3.6) #返回值3
 
 float() #转为浮点型
 
 bin() #将十进制数字转换为2进制

 oct() #将十进制数字转为8进制

 hex() #将十进制数字转为16进制

divmod(10,3) #结果为元组 (3,1)表示 10/3为 商3余1

round(3.14159262) #结果为 3.14 保留小数位数

pow(2,3) #结果为8 表示2的3次幂

pow(2,3,3) #结果为2 表示 2的3次幂对3取余   同等 2**3%3
s='雄飞'
bytes(s,encoding='utf-8')  #结果 b'\xe9\x9b\x84\xe9\xa3\x9e' 同等 s.encode()

ord('中') #结果为20013 输入字符 找到相关的ascii 或者 Unicode值

chr(20013) #结果为中  输入ascii 或者Unidcode 值找到相关字符

repr(s) #结果为'雄飞' #找到字符串原来的样子

all() #可迭代对象全部是True才是True

any () #可迭代对象中有一个为True 就为True

## 以下比较重要

print() #打印 还有sep 参数 end参数

list() #创建列表 或者将一个可迭代对象转为列表

dict()  #创建字典 

abs(-10) #结果10
lis=[i for i in range(10)]
sum(lis) #结果是45 

sum(lis,100) #结果145
s=reversed('xuexiongfei') #返回一个迭代对象

''.join(list(s))  #结果为 iefgnoixeux



#其他函数

enumerate(tianci)	#返回一个可枚举迭代器  

list(enumerate(tianci)) #返回值[(0, ('胡彦斌', 38)), (1, ('陶喆', 50)), (2, ('孟美岐', 25)), (3, ('张韶涵', 35))]

print(format(12.12,'0.3f')) #返回值 与round函数实现了同样的功能

format(3,'b')  #返回 11 返回二进制数字 同bin()

format(10,'o') #返回 12 返回八进制数字 同oct()

format(12,'x')  #返回 c 返回八进制数字 同hex()

ascii('孟美岐') 返回'\u5b5f\u7f8e\u5c90' #返回的字符串中非 ASCII 编码的字符,会使用 \x、\u 和 \U 来转义

isinstance('孟美岐',str) #True 检查对象类型 

vars(str) #返回模块、类、实例或任何其它具有 __dict__ 属性的对象的 __dict__ 属性。

lis=['zhangsan','lisi']
lis1=[18,20]
z=zip(lis,lis1) #返回可迭代对象
dict(z) 返回#{'zhangsan': 18, 'lisi': 20}

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
filew=open(file='filewrite.txt',mode='a',encoding='utf-8')
filew.write('孟美岐')
filew.close()
#打开 file 并返回对应的 file object。如果该文件不能打开,则触发 OSError。

#file 是一个 path-like object,表示将要打开的文件的路径(绝对路径或者当前工作目录的相对路径),也可以是要被封装的整数类型文件描述符。(如果是文件描述符,它会随着返回的 I/O 对象关闭而关闭,除非 closefd 被设为 False 。)

#mode 是一个可选字符串,用于指定打开文件的模式。默认值是 'r' ,这意味着它以文本模式打开并读取。其他常见模式有:写入 'w' (截断已经存在的文件);排它性创建 'x' ;追加写 'a' (在 一些 Unix 系统上,无论当前的文件指针在什么位置,所有 写入都会追加到文件末尾)。在文本模式,如果 encoding 没有指定,则根据平台来决定使用的编码:使用 locale.getpreferredencoding(False) 来获取本地编码。(要读取和写入原始字节,请使用二进制模式并不要指定 encoding。)可用的模式有:

#字符

#含义

#'r'

#读取(默认)

#'w'

#排它性创建,如果文件已存在则失败

#'a'

#写入,如果文件存在则在末尾追加

#'b'

#二进制模式

't'

#文本模式(默认)

#'+'

#更新磁盘文件(读取并写入)

#默认的模式是 'r' (打开并读取文本,同 'rt' )。对于二进制写入, 'w+b' 模式打开并把文件截断成 0 字节; 'r+b' 则不会截断。

#正如在 概述 中提到的,Python区分二进制和文本I/O。以二进制模式打开的文件(包括 mode 参数中的 'b' )返回的内容为 bytes`对象,不进行任何解码。在文本模式下(默认情况下,或者在 *mode* 参数中包含 `'t'` )时,文件内容返回为 str ,首先使用指定的 encoding (如果给定)或者使用平台默认的的字节编码解码。

#此外还允许使用一个模式字符 'U',该字符已不再具有任何效果,并被视为已弃用。 之前它会在文本模式中启用 universal newlines,这在 Python 3.0 中成为默认行为。 请参阅 newline 形参的文档了解更多细节。

#注解 Python不依赖于底层操作系统的文本文件概念;所有处理都由Python本身完成,因此与平台无关。
buffering 是一个可选的整数,用于设置缓冲策略。传递0以切换缓冲关闭(仅允许在二进制模式下),1选择行缓冲(仅在文本模式下可用),并且>1的整数以指示固定大小的块缓冲区的大小(以字节为单位)。如果没有给出 buffering 参数,则默认缓冲策略的工作方式如下:

#二进制文件以固定大小的块进行缓冲;使用启发式方法选择缓冲区的大小,尝试确定底层设备的“块大小”或使用 io.DEFAULT_BUFFER_SIZE。在许多系统上,缓冲区的长度通常为4096或8192字节。

#“交互式”文本文件( isatty() 返回 True 的文件)使用行缓冲。其他文本文件使用上述策略用于二进制文件。

#encoding 是用于解码或编码文件的编码的名称。这应该只在文本模式下使用。默认编码是依赖于平台的(不 管 locale.getpreferredencoding() 返回何值),但可以使用任何Python支持的 text encoding 。有关支持的编码列表,请参阅 codecs 模块。

#errors 是一个可选的字符串参数,用于指定如何处理编码和解码错误 - 这不能在二进制模式下使用。可以使用各种标准错误处理程序(列在 错误处理方案 ),但是使用 codecs.register_error() 注册的任何错误处理名称也是有效的。标准名称包括:

#如果存在编码错误,'strict' 会引发 ValueError 异常。 默认值 None 具有相同的效果。

#'ignore' 忽略错误。请注意,忽略编码错误可能会导致数据丢失。

#'replace' 会将替换标记(例如 '?' )插入有错误数据的地方。

#'surrogateescape' 将表示任何不正确的字节作为Unicode专用区中的代码点,范围从U+DC80到U+DCFF。当在写入数据时使用 surrogateescape 错误处理程序时,这些私有代码点将被转回到相同的字节中。这对于处理未知编码的文件很有用。

#只有在写入文件时才支持 'xmlcharrefreplace'。编码不支持的字符将替换为相应的XML字符引用 &#nnn;。

#'backslashreplace' 用Python的反向转义序列替换格式错误的数据。

#'namereplace' (也只在编写时支持)用 \N{...} 转义序列替换不支持的字符。

#newline 控制 universal newlines 模式如何生效(它仅适用于文本模式)。它可以是 None,'','\n','\r' 和 '\r\n'。它的工作原理:

#从流中读取输入时,如果 newline 为 None,则启用通用换行模式。输入中的行可以以 '\n','\r' 或 '\r\n' 结尾,这些行被翻译成 '\n' 在返回呼叫者之前。如果它是 '',则启用通用换行模式,但行结尾将返回给调用者未翻译。如果它具有任何其他合法值,则输入行仅由给定字符串终止,并且行结尾将返回给未调用的调用者。

#将输出写入流时,如果 newline 为 None,则写入的任何 '\n' 字符都将转换为系统默认行分隔符 os.linesep。如果 newline 是 '' 或 '\n',则不进行翻译。如果 newline 是任何其他合法值,则写入的任何 '\n' 字符将被转换为给定的字符串。

#如果 closefd 是 False 并且给出了文件描述符而不是文件名,那么当文件关闭时,底层文件描述符将保持打开状态。如果给出文件名则 closefd 必须为 True (默认值),否则将引发错误。

#可以通过传递可调用的 opener 来使用自定义开启器。然后通过使用参数( file,flags )调用 opener 获得文件对象的基础文件描述符。 opener 必须返回一个打开的文件描述符(使用 os.open as opener 时与传递 None 的效果相同)。

#新创建的文件是 不可继承的。

















 


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值