Python3 内置函数 爱被打了一巴掌 2022-04-24 03:08 237阅读 0赞 ### `abs`(*x*) ### 返回一个数的绝对值。实参可以是整数或浮点数。如果实参是一个复数,返回它的模。 ### `pow`(*x*, *y*\[, *z*\]) ### 返回 *x* 的 *y* 次幂;如果 *z* 存在,则对 *z* 取余(比直接 `pow(x, y) % z` 计算更高效)。两个参数形式的 `pow(x,y)` 等价于幂运算符: `x**y`。 参数必须为数值类型。 对于混用的操作数类型,则适用二元算术运算符的类型强制转换规则。 对于 `int` 操作数,结果具有与操作数相同的类型(转换后),除非第二个参数为负值;在这种情况下,所有参数将被转换为浮点数并输出浮点数结果。 例如,`10**2` 返回 `100`,但 `10**-2` 返回 `0.01`。 如果第二个参数为负值,则第三个参数必须省略。 如果存在 *z*,则 *x* 和 *y* 必须为整数类型,且 *y* 必须为非负数。 ### `sum`(*iterable*\[, *start*\]) ### 从 *start* 开始自左向右对 *iterable* 中的项求和并返回总计值。 *start* 默认为 `0`。 *iterable* 的项通常为数字,开始值则不允许为字符串。 对某些用例来说,存在 `sum()` 的更好替代。 拼接字符串序列的更好更快方式是调用 `''.join(sequence)`。 要以扩展精度对浮点值求和,请参阅 `math.fsum()`。 要拼接一系列可迭代对象,请考虑使用 `itertools.chain()`。 ### `input`(\[*prompt*\]) ### 如果存在 *prompt* 实参,则将其写入标准输出,末尾不带换行符。接下来,该函数从输入中读取一行,将其转换为字符串(除了末尾的换行符)并返回。当读取到 EOF 时,则触发 `EOFError`。例如: >>> s = input('--> ') --> Monty Python's Flying Circus >>> s "Monty Python's Flying Circus" ### `len`(*s*) ### 返回对象的长度(元素个数)。实参可以是序列(如 string、bytes、tuple、list 或 range 等)或集合(如 dictionary、set 或 frozen set 等)。 ### `map`(*function*, *iterable*, *...*) ### 产生一个将 *function* 应用于迭代器中所有元素并返回结果的迭代器。如果传递了额外的 *iterable* 实参,*function* 必须接受相同个数的实参,并使用所有迭代器中并行获取的元素。当有多个迭代器时,最短的迭代器耗尽则整个迭代结束。 ### `max`(*iterable*, *\**\[, *key*, *default*\]) ### ### `max`(*arg1*, *arg2*, *\*args*\[, *key*\]) ### 返回可迭代对象中最大的元素,或者返回两个及以上实参中最大的。 如果只提供了一个位置参数,它必须是非空 iterable,返回可迭代对象中最大的元素;如果提供了两个及以上的位置参数,则返回最大的位置参数。 有两个可选只能用关键字的实参。*key* 实参指定排序函数用的参数,如传给 `list.sort()` 的。*default* 实参是当可迭代对象为空时返回的值。如果可迭代对象为空,并且没有给 *default* ,则会触发 `ValueError`。 如果有多个最大元素,则此函数将返回第一个找到的。这和其他稳定排序工具如 `sorted(iterable,key=keyfunc, reverse=True)[0]` 和 `heapq.nlargest(1, iterable, key=keyfunc)` 保持一致。 3.4 新版功能: keyword-only 实参 *default* 。 ### `min`(*iterable*, *\**\[, *key*, *default*\]) ### ### `min`(*arg1*, *arg2*, *\*args*\[, *key*\]) ### 返回可迭代对象中最小的元素,或者返回两个及以上实参中最小的。 如果只提供了一个位置参数,它必须是 iterable,返回可迭代对象中最小的元素;如果提供了两个及以上的位置参数,则返回最小的位置参数。 有两个可选只能用关键字的实参。*key* 实参指定排序函数用的参数,如传给 `list.sort()` 的。*default* 实参是当可迭代对象为空时返回的值。如果可迭代对象为空,并且没有给 *default* ,则会触发 `ValueError`。 如果有多个最小元素,则此函数将返回第一个找到的。这和其他稳定排序工具如 `sorted(iterable,key=keyfunc)[0]` 和 `heapq.nsmallest(1, iterable, key=keyfunc)` 保持一致。 3.4 新版功能: keyword-only 实参 *default* 。 ### `next`(*iterator*\[, *default*\]) ### 通过调用 *iterator* 的 `__next__()` 方法获取下一个元素。如果迭代器耗尽,则返回给定的 *default*,如果没有默认值则触发 `StopIteration`。 ### `print`(*\*objects*, *sep=' '*, *end='\\n'*, *file=sys.stdout*, *flush=False*) ### 将 *objects* 打印到 *file* 指定的文本流,以 *sep* 分隔并在末尾加上 *end*。 *sep*, *end*, *file* 和 *flush* 如果存在,它们必须以关键字参数的形式给出。 所有非关键字参数都会被转换为字符串,就像是执行了 `str()` 一样,并会被写入到流,以 *sep* 且在末尾加上 *end*。 *sep* 和 *end* 都必须为字符串;它们也可以为 `None`,这意味着使用默认值。 如果没有给出 *objects*,则 `print()` 将只写入 *end*。 *file* 参数必须是一个具有 `write(string)` 方法的对象;如果参数不存在或为 `None`,则将使用 `sys.stdout`。 由于要打印的参数会被转换为文本字符串,因此 `print()` 不能用于二进制模式的文件对象。 对于这些对象,应改用 `file.write(...)`。 输出是否被缓存通常决定于 *file*,但如果 *flush* 关键字参数为真值,流会被强制刷新。 在 3.3 版更改: 增加了 *flush* 关键字参数。 ### `range`(*stop*) ### ### `range`(*start*, *stop*\[, *step*\]) ### 虽然被称为函数,但 `range` 实际上是一个不可变的序列类型,参见在 range 对象 与 序列类型 --- list, tuple, range 中的文档说明。 ### `round`(*number*\[, *ndigits*\]) ### 返回 *number* 舍入到小数点后 *ndigits* 位精度的值。 如果 *ndigits* 被省略或为 `None`,则返回最接近输入值的整数。 对于支持 `round()` 的内置类型,值会被舍入到最接近的 10 的负 *ndigits* 次幂的倍数;如果与两个倍数的距离相等,则选择偶数 (因此,`round(0.5)` 和 `round(-0.5)` 均为 `0` 而 `round(1.5)` 为 `2`)。 任何整数值都可作为有效的 *ndigits* (正数、零或负数)。 如果 *ndigits* 被省略或为 `None` 则返回值将为整数。 否则返回值与 *number* 的类型相同。 对于一般的 Python 对象 `number`, `round` 将委托给 `number.__round__`。 注解:对浮点数执行 `round()` 的行为可能会令人惊讶:例如,`round(2.675, 2)` 将给出 `2.67` 而不是期望的`2.68`。 这不算是程序错误:这一结果是由于大多数十进制小数实际上都不能以浮点数精确地表示。 请参阅浮点算术:争议和限制 了解更多信息。 ### `sorted`(*iterable*, *\**, *key=None*, *reverse=False*) ### 根据 *iterable* 中的项返回一个新的已排序列表。 具有两个可选参数,它们都必须指定为关键字参数。 *key* 指定带有单个参数的函数,用于从 *iterable* 的每个元素中提取用于比较的键 (例如 `key=str.lower`)。 默认值为 `None` (直接比较元素)。 *reverse* 为一个布尔值。 如果设为 `True`,则每个列表元素将按反向顺序比较进行排序。 使用 `functools.cmp_to_key()` 可将老式的 *cmp* 函数转换为 *key* 函数。 内置的 `sorted()` 确保是稳定的。 如果一个排序确保不会改变比较结果相等的元素的相对顺序就称其为稳定的 --- 这有利于进行多重排序(例如先按部门、再按薪级排序)。 ### `zip`(*\*iterables*) ### 创建一个聚合了来自每个可迭代对象中的元素的迭代器。 返回一个元组的迭代器,其中的第 *i* 个元组包含来自每个参数序列或可迭代对象的第 *i* 个元素。 当所输入可迭代对象中最短的一个被耗尽时,迭代器将停止迭代。 当只有一个可迭代对象参数时,它将返回一个单元组的迭代器。 不带参数时,它将返回一个空迭代器。 相当于: zip('ABCD', 'xy') --> Ax By 当你不用关心较长可迭代对象末尾不匹配的值时,则 `zip()` 只须使用长度不相等的输入即可。 如果那些值很重要,则应改用 `itertools.zip_longest()`。 `zip()` 与 `*` 运算符相结合可以用来拆解一个列表: >>> x = [1, 2, 3] >>> y = [4, 5, 6] >>> zipped = zip(x, y) >>> list(zipped) [(1, 4), (2, 5), (3, 6)] >>> x2, y2 = zip(*zip(x, y)) >>> x == list(x2) and y == list(y2) True
还没有评论,来说两句吧...