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




本博客所有文章采用的授权方式为 自由转载-非商用-非衍生-保持署名 ,转载请务必注明出处,谢谢。
声明:
本博客欢迎转发,但请保留原作者信息!
博客地址:邱文奇(qiuwenqi)的博客;
内容系本人学习、研究和总结,如有雷同,实属荣幸!
阅读次数:

文章评论

comments powered by Disqus


章节列表