Python函数
发布于 2017-09-18 · 本文总共 5510 字 · 阅读大约需要
16 分钟
内置函数
函数 | 功能 | 备注 |
---|---|---|
abs(x) | 返回一个数的绝对值 | |
all(iterable) | 如果 iterable 的所有元素均为真值(或可迭代对象为空)则返回 True | |
any(iterable) | 如果 iterable 的任一元素为真值则返回 True。 如果可迭代对象为空,返回 False | |
ascii(object) | 就像函数 repr(),返回一个对象可打印的字符串 | |
bin(x) | 将一个整数转变为一个前缀为“0b”的二进制字符串 | |
bool([x]) | 返回一个布尔值,True 或者 False。 x 使用标准的 真值测试过程 来转换。如果 x 是假的或者被省略,返回 False;其他情况返回 True。 | |
breakpoint(*args, **kws) | 此函数会在调用时将你陷入调试器中 | |
bytearray([source[, encoding[, errors]]]) | 返回一个新的 bytes 数组。 | |
bytes([source[, encoding[, errors]]]) | 返回一个新的“bytes”对象, 是一个不可变序列,包含范围为 0 <= x < 256 的整数。 | |
callable(object) | 如果参数 object 是可调用的就返回 True,否则返回 False。 如果返回 True,调用仍可能失败,但如果返回 False,则调用 object 将肯定不会成功。 | |
chr(i) | 返回 Unicode 码位为整数 i 的字符的字符串格式。例如,chr(97) 返回字符串 ‘a’,chr(8364) 返回字符串 ‘€’。这是 ord() 的逆函数。 | |
@classmethod | 把一个方法封装成类方法。一个类方法把类自己作为第一个实参,就像一个实例方法把实例自己作为第一个实参。 | |
complex([real[, imag]]) | 返回值为 real + imag*1j 的复数,或将字符串或数字转换为复数。 | |
delattr(object, name) | setattr() 相关的函数。实参是一个对象和一个字符串。该字符串必须是对象的某个属性。如果对象允许,该函数将删除指定的属性。例如 delattr(x, ‘foobar’) 等价于 del x.foobar | |
dir([object]) | 如果没有实参,则返回当前本地作用域中的名称列表。如果有实参,它会尝试返回该对象的有效属性列表。 | |
divmod(a, b) | 它将两个(非复数)数字作为实参,并在执行整数除法时返回一对商和余数。 | |
enumerate(iterable, start=0) | 返回一个枚举对象。iterable 必须是一个序列,或 iterator,或其他支持迭代的对象。 | |
filter(function, iterable) | 用 iterable 中函数 function 返回真的那些元素,构建一个新的迭代器。 | |
float([x]) | 返回从数字或字符串 x 生成的浮点数。 | |
frozenset([iterable]) | 返回一个新的 frozenset 对象,它包含可选参数 iterable 中的元素。 | |
getattr(object, name[, default]) | 返回对象命名属性的值。name 必须是字符串。如果该字符串是对象的属性之一,则返回该属性的值。例如, getattr(x, ‘foobar’) 等同于 x.foobar。如果指定的属性不存在,且提供了 default 值,则返回它,否则触发 AttributeError。 | |
hasattr(object, name) | 该实参是一个对象和一个字符串。如果字符串是对象的属性之一的名称,则返回 True,否则返回 False。(此功能是通过调用 getattr(object, name) 看是否有 AttributeError 异常来实现的。) | |
hash(object) | 返回该对象的哈希值(如果它有的话)。哈希值是整数。它们在字典查找元素时用来快速比较字典的键。相同大小的数字变量有相同的哈希值(即使它们类型不同,如 1 和 1.0)。 | |
help([object]) | 启动内置的帮助系统(此函数主要在交互式中使用)。 | |
hex(x) | 将整数转换为以“0x”为前缀的小写十六进制字符串。 | |
id(object) | 返回对象的“标识值”。该值是一个整数,在此对象的生命周期中保证是唯一且恒定的。两个生命期不重叠的对象可能具有相同的 id() 值。 | |
isinstance(object, classinfo) | 如果参数 object 是参数 classinfo 的实例或者是其 (直接、间接或 虚拟) 子类则返回 True。 如果 object 不是给定类型的对象,函数将总是返回 False。 | |
issubclass(class, classinfo) | 如果 class 是 classinfo 的 (直接、间接或 虚拟) 子类则返回 True。 | |
iter(object[, sentinel]) | 返回一个 iterator 对象。根据是否存在第二个实参,第一个实参的解释是非常不同的。 | |
len(s) | 返回对象的长度(元素个数)。实参可以是序列(如 string、bytes、tuple、list 或 range 等)或集合(如 dictionary、set 或 frozen set 等)。 | |
class list([iterable]) | 虽然被称为函数,list 实际上是一种可变序列类型 | |
locals() | 更新并返回表示当前本地符号表的字典。 在函数代码块但不是类代码块中调用 locals() 时将返回自由变量。 请注意在模块层级上,locals() 和 globals() 是同一个字典。 | |
map(function, iterable, …) | 返回一个将 function 应用于 iterable 中每一项并输出其结果的迭代器。 | |
max(iterable, *[, key, default])/max(arg1, arg2, *args[, key]) | 返回可迭代对象中最大的元素,或者返回两个及以上实参中最大的。 | |
class memoryview(obj) | 返回由给定实参创建的“内存视图”对象。 | |
min(iterable, *[, key, default])/min(arg1, arg2, *args[, key]) | 返回可迭代对象中最小的元素,或者返回两个及以上实参中最小的。 | |
next(iterator[, default]) | 通过调用 iterator 的 next() 方法获取下一个元素。如果迭代器耗尽,则返回给定的 default,如果没有默认值则触发 StopIteration。 | |
class object | 返回一个没有特征的新对象。object 是所有类的基类。它具有所有 Python 类实例的通用方法。这个函数不接受任何实参。 | |
oct(x) | 将一个整数转变为一个前缀为“0o”的八进制字符串。结果是一个合法的 Python 表达式。 | |
ord(c) | 对表示单个 Unicode 字符的字符串,返回代表它 Unicode 码点的整数。 | |
pow(base, exp[, mod]) | 返回 base 的 exp 次幂;如果 mod 存在,则返回 base 的 exp 次幂对 mod 取余(比 pow(base, exp) % mod 更高效)。 两参数形式 pow(base, exp) 等价于乘方运算符: base**exp。 | |
property(fget=None, fset=None, fdel=None, doc=None) | 返回 property 属性。fget 是获取属性值的函数。 fset 是用于设置属性值的函数。 fdel 是用于删除属性值的函数。并且 doc 为属性对象创建文档字符串。 | |
repr(object) | 返回包含一个对象的可打印表示形式的字符串。 | |
reversed(seq) | 返回一个反向的 iterator。 | |
round(number[, ndigits]) | 返回 number 舍入到小数点后 ndigits 位精度的值。 如果 ndigits 被省略或为 None,则返回最接近输入值的整数。 | |
set([iterable]) | 返回一个新的 set 对象,可以选择带有从 iterable 获取的元素。 | |
setattr(object, name, value) | 此函数与 getattr() 两相对应。 其参数为一个对象、一个字符串和一个任意值。 | |
slice(start, stop[, step]) | 返回一个表示由 range(start, stop, step) 所指定索引集的 slice 对象。 | |
sorted(iterable, *, key=None, reverse=False) | 根据 iterable 中的项返回一个新的已排序列表。 | |
@staticmethod | 将方法转换为静态方法。 | |
str(object=b’’, encoding=’utf-8’, errors=’strict’) | 返回一个 str 版本的 object 。 | |
sum(iterable, /, start=0) | 从 start 开始自左向右对 iterable 的项求和并返回总计值。 iterable 的项通常为数字,而 start 值则不允许为字符串。 | |
super([type[, object-or-type]]) | 返回一个代理对象,它会将方法调用委托给 type 的父类或兄弟类。 这对于访问已在类中被重载的继承方法很有用。 | |
tuple([iterable]) | 一个不可变的序列类型 | |
type(object)/type(name, bases, dict) | 传入一个参数时,返回 object 的类型。 返回值是一个 type 对象,通常与 object.class 所返回的对象相同。传入三个参数时,返回一个新的 type 对象。 | |
vars([object]) | 返回模块、类、实例或任何其它具有 dict 属性的对象的 dict 属性。 | |
zip(*iterables) | 创建一个聚合了来自每个可迭代对象中的元素的迭代器。 |
zip
相当于:
def zip(*iterables):
# zip('ABCD', 'xy') --> Ax By
sentinel = object()
iterators = [iter(it) for it in iterables]
while iterators:
result = []
for it in iterators:
elem = next(it, sentinel)
if elem is sentinel:
return
result.append(elem)
yield tuple(result)
lambda
猴子补丁
在运行期间动态修改一个类或模块。
enumerate
简介
enumerate()是python的内置函数 enumerate在字典上是枚举、列举的意思 对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值 enumerate多用于在for循环中得到计数
遍历列表
enumerate还可以接收第二个参数,用于指定索引起始值,如:
list1 = ["这", "是", "一个", "测试"]
for index, item in enumerate(list1, 1):
print index, item
统计文件的行数
- 一般方法
count = len(open(filepath, 'r').readlines())
- enumerate方法
count = 0 for index, line in enumerate(open(filepath,'r')): count += 1
服务端
from socket import socket, AF_INET, SOCK_STREAM
import ssl
KEYFILE = 'server_key.pem' # Private key of the server
CERTFILE = 'server_cert.pem' # Server certificate (given to client)
def echo_client(s):
while True:
data = s.recv(8192)
if data == b'':
break
s.send(data)
s.close()
print('Connection closed')
def echo_server(address):
s = socket(AF_INET, SOCK_STREAM)
s.bind(address)
s.listen(1)
# Wrap with an SSL layer requiring client certs
s_ssl = ssl.wrap_socket(s,
keyfile=KEYFILE,
certfile=CERTFILE,
server_side=True
)
# Wait for connections
while True:
try:
c,a = s_ssl.accept()
print('Got connection', c, a)
echo_client(c)
except Exception as e:
print('{}: {}'.format(e.__class__.__name__, e))
echo_server(('', 20000))
客户端
from socket import socket, AF_INET, SOCK_STREAM
import ssl
s = socket(AF_INET, SOCK_STREAM)
s_ssl = ssl.wrap_socket(s,cert_reqs=ssl.CERT_REQUIRED,ca_certs = 'server_cert.pem')
s_ssl.connect(('localhost', 20000))
s_ssl.send(b'Hello World?')
s_ssl.recv(8192)
refs
https://docs.python.org/zh-cn/3/library/functions.html
https://docs.python.org/zh-cn/3/library/collections.html