资讯专栏INFORMATION COLUMN

Python全栈之路系列之Python3内置函数

vspiders / 2014人阅读

摘要:官方介绍内置函数详解返回数字的绝对值,参数可以是整数或浮点数,如果参数是复数,则返回其大小。返回对象的命名属性的值,必须是字符串,如果字符串是对象属性之一的名称,则结果是该属性的值。

The Python interpreter has a number of functions and types built into it that are always available. They are listed here in alphabetical order.

Built-in Functions
abs() dict() help() min() setattr() all() dir()
hex() next() slice() any() divmod() id() object()
sorted() ascii() enumerate() input() oct() staticmethod() bin()
eval() int() open() str() bool() exec() isinstance()
ord() sum() bytearray() filter() issubclass() pow() super()
bytes() float() iter() print() tuple() callable() format()
len() property() type() chr() frozenset() list() range()
vars() classmethod() getattr() locals() repr() zip() compile()
globals() map() reversed() __import__() complex() hasattr() max()
round() delattr() hash() memoryview() set()

</>复制代码

  1. 官方介绍:https://docs.python.org/3/lib...

内置函数详解

abs(x)

</>复制代码

  1. 返回数字的绝对值,参数可以是整数或浮点数,如果参数是复数,则返回其大小。

</>复制代码

  1. # 如果参数是复数,则返回其大小。
  2. >>> abs(-25)
  3. 25
  4. >>> abs(25)
  5. 25

all(iterable)

</>复制代码

  1. all()会循环括号内的每一个元素,如果括号内的所有元素都是真的,或者如果iterable为空,则返回True,如果有一个为假的那么就返回False

</>复制代码

  1. >>> all([])
  2. True
  3. >>> all([1,2,3])
  4. True
  5. >>> all([1,2,""])
  6. False
  7. # 如果有一个为假,则都为假
  8. >>> all([1,2,None])
  9. False

假的参数有:False0None""[](){}等,查看一个元素是否为假可以使用bool进行查看。

any(iterable)

</>复制代码

  1. 循环元素,如果有一个元素为真,那么就返回True,否则就返回False

</>复制代码

  1. >>> any([0,1])
  2. True
  3. >>> any([0])
  4. False

ascii(object)

</>复制代码

  1. 在对象的类中寻找__repr__方法,获取返回值

</>复制代码

  1. >>> class Foo:
  2. ... def __repr_(self):
  3. ... return "hello"
  4. ...
  5. >>> obj = Foo()
  6. >>> r = ascii(obj)
  7. >>> print(r)
  8. # 返回的是一个可迭代的对象
  9. <__main__.Foo object at 0x000001FDEE13D320>

bin(x)

将整数x转换为二进制字符串,如果x不为Python中int类型,x必须包含方法__index__()并且返回值为integer

</>复制代码

  1. # 返回一个整数的二进制
  2. >>> bin(999)
  3. "0b1111100111"

</>复制代码

  1. # 非整型的情况,必须包含__index__()方法切返回值为integer的类型
  2. >>> class myType:
  3. ... def __index__(self):
  4. ... return 35
  5. ...
  6. >>> myvar = myType()
  7. >>> bin(myvar)
  8. "0b100011"

bool([x])

查看一个元素的布尔值,非真即假

</>复制代码

  1. >>> bool(0)
  2. False
  3. >>> bool(1)
  4. True
  5. >>> bool([1])
  6. True
  7. >>> bool([10])
  8. True

bytearray([source [, encoding [, errors]]])

</>复制代码

  1. 返回一个byte数组,Bytearray类型是一个可变的序列,并且序列中的元素的取值范围为 [0 ,255]。

source参数:

如果source为整数,则返回一个长度为source的初始化数组;

如果source为字符串,则按照指定的encoding将字符串转换为字节序列;

如果source为可迭代类型,则元素必须为[0 ,255]中的整数;

如果source为与buffer接口一致的对象,则此对象也可以被用于初始化bytearray.。

</>复制代码

  1. >>> bytearray(3)
  2. bytearray(b"x00x00x00")

bytes([source[, encoding[, errors]]])

</>复制代码

  1. >>> bytes("asdasd",encoding="utf-8")
  2. b"asdasd"

callable(object)

</>复制代码

  1. 返回一个对象是否可以被执行

</>复制代码

  1. >>> def func():
  2. ... return 123
  3. ...
  4. >>> callable(func)
  5. True
  6. >>> func = 123
  7. >>> callable(func)
  8. False

chr(i)

</>复制代码

  1. 返回一个数字在ASCII编码中对应的字符,取值范围256个

</>复制代码

  1. >>> chr(66)
  2. "B"
  3. >>> chr(5)
  4. "x05"
  5. >>> chr(55)
  6. "7"
  7. >>> chr(255)
  8. "xff"
  9. >>> chr(25)
  10. "x19"
  11. >>> chr(65)
  12. "A"

classmethod(function)

</>复制代码

  1. 返回函数的类方法

compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)

</>复制代码

  1. 把字符串编译成python可执行的代码

</>复制代码

  1. >>> str = "for i in range(0,10): print(i)"
  2. >>> c = compile(str,"","exec")
  3. >>> exec(c)
  4. 0
  5. 1
  6. 2
  7. 3
  8. 4
  9. 5
  10. 6
  11. 7
  12. 8
  13. 9

complex([real[, imag]])

</>复制代码

  1. 创建一个值为real + imag * j的复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数

</>复制代码

  1. >>> complex(1, 2)
  2. (1+2j)
  3. # 数字
  4. >>> complex(1)
  5. (1+0j)
  6. # 当做字符串处理
  7. >>> complex("1")
  8. (1+0j)
  9. # 注意:这个地方在“+”号两边不能有空格,也就是不能写成"1 + 2j",应该是"1+2j",否则会报错
  10. >>> complex("1+2j")
  11. (1+2j)

delattr(object, name)

</>复制代码

  1. 删除对象的属性值

</>复制代码

  1. >>> class cls:
  2. ... @classmethod
  3. ... def echo(self):
  4. ... print("CLS")
  5. ...
  6. >>> cls.echo()
  7. CLS
  8. >>> delattr(cls, "echo")
  9. >>> cls.echo()
  10. Traceback (most recent call last):
  11. File "", line 1, in
  12. AttributeError: type object "cls" has no attribute "echo"

dict(**kwarg)

</>复制代码

  1. 创建一个数据类型为字典

</>复制代码

  1. >>> dic = dict({"k1":"123","k2":"456"})
  2. >>> dic
  3. {"k1": "123", "k2": "456"}

dir([object])

</>复制代码

  1. 返回一个对象中中的所有方法

</>复制代码

  1. >>> dir(str)
  2. ["__add__", "__class__", "__contains__", "__delattr__", "__dir__", "__doc__", "__eq__", "__format__", "__ge__", "__getattribute__", "__getitem__", "__getnewargs__", "__gt__", "__hash__", "__init__", "__iter__", "__le__", "__len__", "__lt__", "__mod__", "__mul__", "__ne__", "__new__", "__reduce__", "__reduce\_ex__", "__repr__", "__rmod__", "__rmul__", "__setattr__", "__sizeof__", "__str__", "__subclasshook__", "capitalize", "casefold", "center", "count", "encode", "endswith", "expandtabs", "find", "format", "format_map", "index", "isalnum", "isalpha", "isdecimal", "isdigit", "isidentifier", "islower", "isnumeric", "isprintable", "isspace", "istitle", "isupper", "join", "ljust", "lower", "lstrip", "maketrans", "partition", "replace", "rfind", "rindex", "rjust", "rpartition", "rsplit", "rstrip", "split", "splitlines", "startswith", "strip", "swapcase", "title", "translate", "upper", "zfill"]

divmod(a, b)

</>复制代码

  1. 返回的是a//b(除法取整)以及a对b的余数,返回结果类型为tuple

</>复制代码

  1. >>> divmod(10, 3)
  2. (3, 1)

enumerate(iterable, start=0)

</>复制代码

  1. 为元素生成下标

</>复制代码

  1. >>> li = ["a","b","c"]
  2. >>> for n,k in enumerate(li):
  3. ... print(n,k)
  4. ...
  5. 0 a
  6. 1 b
  7. 2 c

eval(expression, globals=None, locals=None)

</>复制代码

  1. 把一个字符串当作一个表达式去执行

</>复制代码

  1. >>> string = "1 + 3"
  2. >>> string
  3. "1 + 3"
  4. >>> eval(string)
  5. 4

exec(object[, globals[, locals]])

</>复制代码

  1. 把字符串当作python代码执行

</>复制代码

  1. >>> exec("for n in range(5): print(n)")
  2. 0
  3. 1
  4. 2
  5. 3
  6. 4

filter(function, iterable)

</>复制代码

  1. 筛选过滤,循环可迭代的对象,把迭代的对象当作函数的参数,如果符合条件就返回True,否则就返回False

</>复制代码

  1. >>> def func(x):
  2. ... if x == 11 or x == 22:
  3. ... return True
  4. ...
  5. >>> ret = filter(func,[11,22,33,44])
  6. >>> for n in ret:
  7. ... print(n)
  8. ...
  9. 11
  10. 22

</>复制代码

  1. >>> list(filter((lambda x: x > 0),range(-5,5)))
  2. [1, 2, 3, 4]

float([x])

</>复制代码

  1. 将整数和字符串转换成浮点数

</>复制代码

  1. >>> float("124")
  2. 124.0
  3. >>> float("123.45")
  4. 123.45
  5. >>> float("-123.34")
  6. -123.34

format(value[, format_spec])

</>复制代码

  1. 字符串格式化

详键:https://blog.ansheng.me/artic...

frozenset([iterable])

</>复制代码

  1. frozenset是冻结的集合,它是不可变的,存在哈希值,好处是它可以作为字典的key,也可以作为其它集合的元素。缺点是一旦创建便不能更改,没有addremove方法。

getattr(object, name[, default])

</>复制代码

  1. 返回对象的命名属性的值,name必须是字符串,如果字符串是对象属性之一的名称,则结果是该属性的值。

globals()

</>复制代码

  1. 获取或修改当前文件内的全局变量

</>复制代码

  1. >>> a = "12"
  2. >>> bsd = "54asd"
  3. >>> globals()
  4. {"__doc__": None, "a": "12", "__loader__": , "bsd": "54asd", "__builtins__": , "n": "__doc__", "__name__": "__main__", "__spec__": None, "__package__": None}

hasattr(object, name)

</>复制代码

  1. 参数是一个对象和一个字符串,如果字符串是对象的某个属性的名称,则结果为True,否则为False

hash(object)

</>复制代码

  1. 返回一个对象的hash

</>复制代码

  1. >>> a = "asdadasdwqeq234sdfdf"
  2. >>> hash(a)
  3. 5390438057823015497

help([object])

</>复制代码

  1. 查看一个类的所有详细方法,或者查看某个方法的使用详细信息

</>复制代码

  1. >>> help(list)
  2. Help on class list in module __builtin__:
  3. class list(object)
  4. | list() -> new empty list
  5. | list(iterable) -> new list initialized from iterable"s items
  6. |
  7. | Methods defined here:
  8. |
  9. | __add__(...)
  10. | x.__add__(y) <==> x+y
  11. |
  12. | __contains__(...)
  13. | x.__contains__(y) <==> y in x
  14. |
  15. | __delitem__(...)
  16. | x.__delitem__(y) <==> del x[y]
  17. |
  18. | __delslice__(...)
  19. | x.__delslice__(i, j) <==> del x[i:j]
  20. |
  21. | Use of negative indices is not supported.
  22. ..........

hex(x)

</>复制代码

  1. 获取一个数的十六进制

</>复制代码

  1. >>> hex(13)
  2. "0xd"

id(object)

</>复制代码

  1. 返回一个对象的内存地址

</>复制代码

  1. >>> a = 123
  2. >>> id(a)
  3. 1835400816

input([prompt])

</>复制代码

  1. 交互式输入

</>复制代码

  1. >>> name = input("Pless your name: ")
  2. Pless your name: ansheng
  3. >>> print(name)
  4. ansheng

int(x, base=10)

</>复制代码

  1. 获取一个数的十进制

</>复制代码

  1. >>> int("31")
  2. 31

</>复制代码

  1. 也可以作为进制转换

</>复制代码

  1. >>> int(10)
  2. 10
  3. >>> int("0b11",base=2)
  4. 3
  5. >>> int("11",base=8)
  6. 9
  7. >>> int("0xe",base=16)
  8. 14

isinstance(object, classinfo)

</>复制代码

  1. 判断对象是否是这个类创建的

</>复制代码

  1. >>> li = [11,22,33]
  2. >>> isinstance(li,list)
  3. True

issubclass(class, classinfo)

</>复制代码

  1. 查看一个对象是否为子类

iter(object[, sentinel])

</>复制代码

  1. 创建一个可迭代的对象

</>复制代码

  1. >>> obj = iter([11,22,33,44])
  2. >>> obj
  3. >>> for n in obj:
  4. ... print(n)
  5. ...
  6. 11
  7. 22
  8. 33
  9. 44

len(s)

</>复制代码

  1. 查看一个对象的长度

</>复制代码

  1. >>> url="ansheng.me"
  2. >>> len(url)
  3. 10

list([iterable])

</>复制代码

  1. 创建一个数据类型为列表

</>复制代码

  1. >>> li = list([11,22,33,44])
  2. >>> li
  3. [11, 22, 33, 44]

locals()

</>复制代码

  1. 返回当前作用域的局部变量,以字典形式输出

</>复制代码

  1. >>> func()
  2. >>> def func():
  3. ... name="ansheng"
  4. ... print(locals())
  5. ...
  6. >>> func()
  7. {"name": "ansheng"}

map(function, iterable, ...)

</>复制代码

  1. 对一个序列中的每一个元素都传到函数中执行并返回

</>复制代码

  1. >>> list(map((lambda x : x +10),[1,2,3,4]))
  2. [11, 12, 13, 14]

max(iterable, *[, key, default])

max(arg1, arg2, *args[, key])

</>复制代码

  1. 取一个对象中的最大值

</>复制代码

  1. >>> li = list([11,22,33,44])
  2. >>> li = [11,22,33,44]
  3. >>> max(li)
  4. 44

memoryview(obj)

</>复制代码

  1. 返回对象obj的内存查看对象

</>复制代码

  1. >>> import struct
  2. >>> buf = struct.pack("i"*12, *list(range(12)))
  3. >>> x = memoryview(buf)
  4. >>> y = x.cast("i", shape=[2,2,3])
  5. >>> print(y.tolist())
  6. [[[0, 1, 2], [3, 4, 5]], [[6, 7, 8], [9, 10, 11]]]

min(iterable, *[, key, default])

min(arg1, arg2, *args[, key])

</>复制代码

  1. 取一个对象中的最小值

</>复制代码

  1. >>> li = list([11,22,33,44])
  2. >>> li = [11,22,33,44]
  3. >>> min(li)
  4. 11

next(iterator[, default])

</>复制代码

  1. 每次只拿取可迭代对象的一个元素

</>复制代码

  1. >>> obj = iter([11,22,33,44])
  2. >>> next(obj)
  3. 11
  4. >>> next(obj)
  5. 22
  6. >>> next(obj)
  7. 33
  8. >>> next(obj)
  9. 44
  10. >>> next(obj)
  11. # 如果没有可迭代的元素了就会报错
  12. Traceback (most recent call last):
  13. File "", line 1, in
  14. StopIteration

object

</>复制代码

  1. 返回一个新的无特征对象

oct(x)

</>复制代码

  1. 获取一个字符串的八进制

</>复制代码

  1. >>> oct(13)
  2. "0o15"

open(file, mode="r", buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

</>复制代码

  1. 文件操作的函数,用来做文件操作的

</>复制代码

  1. # 打开一个文件
  2. - >>> f = open("a.txt","r")

ord(c)

</>复制代码

  1. 把一个字母转换为ASCII对对应表中的数字

</>复制代码

  1. >>> ord("a")
  2. 97
  3. >>> ord("t")
  4. 116

pow(x, y[, z])

</>复制代码

  1. 返回一个数的N次方

</>复制代码

  1. >>> pow(2, 10)
  2. 1024
  3. >>> pow(2, 20)
  4. 1048576

print(*objects, sep=" ", end="n", file=sys.stdout, flush=False)

</>复制代码

  1. 打印输出

</>复制代码

  1. >>> print("hello word")
  2. hello word

property(fget=None, fset=None, fdel=None, doc=None)

range(start, stop[, step])

</>复制代码

  1. 生成一个序列

</>复制代码

  1. >>> range(10)
  2. range(0, 10)
  3. >>> for n in range(5):
  4. ... print(n)
  5. ...
  6. 0
  7. 1
  8. 2
  9. 3
  10. 4

repr(object)

</>复制代码

  1. 返回一个包含对象的可打印表示的字符串

</>复制代码

  1. >>> repr(111)
  2. "111"
  3. >>> repr(111.11)
  4. "111.11"

reversed(seq)

</>复制代码

  1. 对一个对象的元素进行反转

</>复制代码

  1. >>> li = [1, 2, 3, 4]
  2. >>> reversed(li)
  3. >>> for n in reversed(li):
  4. ... print(n)
  5. ...
  6. 4
  7. 3
  8. 2
  9. 1

round(number[, ndigits])

</>复制代码

  1. 四舍五入

</>复制代码

  1. >>> round(3.3)
  2. 3
  3. >>> round(3.7)
  4. 4

set([iterable])

</>复制代码

  1. 创建一个数据类型为集合

</>复制代码

  1. >>> varss = set([11,222,333])
  2. >>> type(varss)

setattr(object, name, value)

</>复制代码

  1. 为某个对象设置一个属性

slice(start, stop[, step])

</>复制代码

  1. 元素的切片操作都是调用的这个方法

sorted(iterable, key)

</>复制代码

  1. 为一个对象的元素进行排序

代码:

</>复制代码

  1. #!/usr/bin/env python
  2. # _*_ coding:utf-8 _*_
  3. char=["赵","123", "1", "25", "65","679999999999", "a","B","alex","c" ,"A", "_", "ᒲ","a钱","孙","李","余", "佘","佗", "㽙", "铱", "钲钲㽙㽙㽙"]
  4. new_chat = sorted(char)
  5. print(new_chat)
  6. for i in new_chat:
  7. print(bytes(i, encoding="utf-8"))

输出结果:

</>复制代码

  1. C:Python35python.exe F:/Python_code/Note/soretd.py
  2. ["1", "123", "25", "65", "679999999999", "A", "B", "_", "a", "alex", "a钱", "c", "ᒲ", "㽙", "佗", "佘", "余", "孙", "李", "赵", "钲钲㽙㽙㽙", "铱"]
  3. b"1"
  4. b"123"
  5. b"25"
  6. b"65"
  7. b"679999999999"
  8. b"A"
  9. b"B"
  10. b"_"
  11. b"a"
  12. b"alex"
  13. b"axe9x92xb1"
  14. b"c"
  15. b"xe1x92xb2"
  16. b"xe3xbdx99"
  17. b"xe4xbdx97"
  18. b"xe4xbdx98"
  19. b"xe4xbdx99"
  20. b"xe5xadx99"
  21. b"xe6x9dx8e"
  22. b"xe8xb5xb5"
  23. b"xe9x92xb2xe9x92xb2xe3xbdx99xe3xbdx99xe3xbdx99"
  24. b"xe9x93xb1"
  25. Process finished with exit code 0

staticmethod(function)

</>复制代码

  1. 返回函数的静态方法

str(object=b"", encoding="utf-8", errors="strict")

</>复制代码

  1. 字符串

</>复制代码

  1. >>> a = str(111)
  2. >>> type(a)

sum(iterable[, start])

</>复制代码

  1. 求和

</>复制代码

  1. >>> sum([11,22,33])
  2. 66

super([type[, object-or-type]])

</>复制代码

  1. 执行父类的构造方法

tuple([iterable])

</>复制代码

  1. 创建一个对象,数据类型为元组

</>复制代码

  1. >>> tup = tuple([11,22,33,44])
  2. >>> type(tup)

type(object)

</>复制代码

  1. 查看一个对象的数据类型

</>复制代码

  1. >>> a = 1
  2. >>> type(a)
  3. >>> a = "str"
  4. >>> type(a)

vars([object])

查看一个对象里面有多少个变量

zip(*iterables)

</>复制代码

  1. 将两个元素相同的序列转换为字典

</>复制代码

  1. >>> li1 = ["k1","k2","k3"]
  2. >>> li2 = ["a","b","c"]
  3. >>> d = dict(zip(li1,li2))
  4. >>> d
  5. {"k1": "a", "k2": "b", "k3": "c"}

__import__(name, globals=None, locals=None, fromlist=(), level=0)

</>复制代码

  1. 导入模块,把导入的模块作为一个别名

生成随机验证码例子

生成一个六位的随机验证码,且包含数字,数字的位置随机

</>复制代码

  1. # 导入random模块
  2. import random
  3. temp = ""
  4. for i in range(6):
  5. num = random.randrange(0,4)
  6. if num == 3 or num == 1:
  7. rad2 = random.randrange(0,10)
  8. temp = temp + str(rad2)
  9. else:
  10. rad1 = random.randrange(65,91)
  11. c1 = chr(rad1)
  12. temp = temp + c1
  13. print(temp)

输出结果

</>复制代码

  1. C:Python35python.exe F:/Python_code/sublime/Day06/built_in.py
  2. 72TD11

原文链接

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/38396.html

相关文章

  • Python全栈系列数字数据类型

    摘要:数字在中,整型长整型浮点数负数布尔值等都可以称之为数字类型。数字类型的复杂度整数比浮点数简单浮点数比复数简单。布尔类型布尔类型其实就是数字和的变种而来,即真或假,实际上就是内置的数字类型的子类而已。 上篇文章中我们简单的体验了Python语言基本概念与语法,那么在继续深入下去的过程中,不妨先学习几个常见的Python内置数据类型?这也是大部分Python教科书的学习目录,由浅至深,慢慢...

    Developer 评论0 收藏0
  • Python全栈系列递归

    摘要:所谓递归其实就是函数本身调用函数,直到满足指定条件之后一层层退出函数,例如从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢故事是什么呢从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢故事是什么呢从前有座山,山里有座庙 所谓递归其实就是函数本身调用函数,直到满足指定条件之后一层层退出函数, 例如 从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是...

    kviccn 评论0 收藏0
  • Python全栈系列字符串格式化

    摘要:目前提供的字符串格式化方式有两种百分号方式方式这两种方式在和中都适用,百分号方式是一直内置存在的,方式为近期才出来的。 This PEP proposes a new system for built-in string formatting operations, intended as a replacement for the existing % string formatti...

    avwu 评论0 收藏0
  • Python全栈系列文件操作

    摘要:可以对文件进行查看创建等功能,可以对文件内容进行添加修改删除,且所使用到的函数在为,在同时支持和,但是在系列移除了函数。在及以后,又支持同时对多个文件的上下文进行管理,即原文链接 Python可以对文件进行查看、创建等功能,可以对文件内容进行添加、修改、删除,且所使用到的函数在Python3.5.x为open,在Python2.7.x同时支持file和open,但是在3.5.x系列移除...

    Drummor 评论0 收藏0
  • Python全栈系列基础篇

    摘要:是个的一种实现方式,编译代码为字节码,然后由虚拟机执行,这意味着此时程序与程序没有区别,只是源代码不一样。原文链接全栈之路系列文章 Python的诞生 Python是著名的龟叔Guido van Rossum(吉多·范罗苏姆)在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。 showImg(https://segmentfault.com/img/remote/146...

    muddyway 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<