• 【python之路18】内置函数,补充请看【python之路46】


    1、abs(number)表示某个数字的绝对值

    print(abs(-123)) #打印出123

    2、all(iterable) 表示可迭代的参数全部为True那么返回True,否则返回False

    re = all([True,True]) #参数为可迭代的,当参数全部为True时才返回True,否则返回False
    print(re)  #True

    python中False的情况:False,0,None,'',[],(),{},set(),其他情况则为True,可以用bool转换进行验证,例如:

    bol = bool(set())
    print(bol)  #打印False
    re = all(['aa',(11,22),{}])
    print(re)  #因为上面参数中有一个{}所以其中有一个为False,则结果打印出False

    3、any(iterable) 表示可迭代的参数只要有一个为True那么返回True,否则返回False

    re = any(['',(),[],{}])
    print(re) #因为参数中全部为False类型,所以结果打印出False

     4、ascii(对象)  #表示在对象的类中找到__repr__,执行__repr__并将返回的结果返回给ascii,然后由ascii返回回来

    class Foo:
        def __repr__(self):
            return 'hello world!'
    fo = Foo()  #类的实例化
    print(ascii(fo))  #输出'hollo world!'

     5、关于进制转换的函数

    bin()  二进制

    oct()  八进制

    int()  十进制

    hex()  十六进制

    1)十进制转化为其他进制

    re = bin(20)  #将十进制20转化为二进制
    re = oct(20)  #将十进制20转化为八进制
    re = int(20)  #将十进制20转化为十进制
    re = hex(20)  #将十进制20转化为十六进制

     2)将其他进制转化为十进制

    re = int('0b10',base=2)  #将二进制转化为十进制
    re = int('0o71',base=8)  #将八进制转化为十进制
    re = int('0xAB',base=16) #将十六进制转化为十进制
    re1 = int(0b10)  #将二进制转化为十进制
    re2 = int(0o71)  #将八进制转化为十进制
    re3 = int(0xAB) #将十六进制转化为十进制
    
    re1 = int('0b10',0)  #将二进制转化为十进制
    re2 = int('0o71',0)  #将八进制转化为十进制
    re3 = int('0xAB',0) #将十六进制转化为十进制

    6、bool()判断真假

    可以将任何值转化为布尔类型,如:False,0,None,'',[],(),{},set()转化为False

    7、bytes()和bytearray() 

    byt = bytes('xxxx',encoding='utf-8') #将字符串转化为字节

    8、chr() ord()  ASCII码字符和数字转换

    asc = chr(65)
    print(asc)  #输出A
    num = ord("A")
    print(num) #输出65

     实例随机生成四位验证码:

    #实例生成四位的随机验证码
    #0-9的ASCII  48-57
    #A-Z的ASCII  65-90
    #a-z的ASCII  97-122
    import random
    emp = ""
    for i in range(1,5):
        ran = random.randrange(1,4)
        if ran == 1:
            emp += str(random.randrange(0,9))
        elif ran == 2:
            emp += chr(random.randrange(65,90))
        else:
            emp += chr(random.randrange(97, 122))
    print(emp)

     9、callable()判断对象是不是可执行的

    def f1()
        print("hello word")
    callable(f1)  #如果f1后面加括号,可以被执行,那么返回True,否则返回False

    10、compile()编译,将字符串类型的代码编译为可执行的代码

    #!usr/bin/env python
    # -*- coding:utf-8 -*-
    
    code = "for i in range(10):print(i)"
    cmpcode = compile(code,'','exec')
    exec(cmpcode)  #结果将打印0-9的数字
    #!usr/bin/env python
    # -*- coding:utf-8 -*-
    str = '3 * 4 + 5'
    a = compile(str,'','eval')
    print(eval(a))  #打印出17

     11、dir(类名) 列出某个类的功能

    print(dir(list))

    会打印出:['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

    12、divmod(除数,被除数)  返回一个元组(商,余数)

    print(divmod(10,3))  #会打印(3, 1)

     13、enumeric(可迭代的,起始位置) 可以在循环时加入序号

    #!usr/bin/env python
    # -*- coding:utf-8 -*-
    li = [11,22,33,44,55]
    for i,j in enumerate(li,1):
        print(i,j)

    输出结果:

    1 11
    2 22
    3 33
    4 44
    5 55

    14、eval('1 + 2')  执行表达式, 可以计算字符串的四则运算

    #!usr/bin/env python
    # -*- coding:utf-8 -*-
    re = eval('1+3*2')
    print(re) #打印输出7
    #!usr/bin/env python
    # -*- coding:utf-8 -*-
    re = eval('a+99',{'a':100})
    print(re) #打印输出199

     15、exec(字符串) 可以将字符串转化为代码执行

    #!usr/bin/env python
    # -*- coding:utf-8 -*-
    st =  "print('hello worl!')"
    exec(st) #输出:hello worl!

    16、filter(函数,可迭代的对象)  将可迭代的对象的每一个元素作为参数,循环调用函数,如果函数返回True,则加入filter返回数据的迭代对象

    #!usr/bin/env python
    # -*- coding:utf-8 -*-
    def f1(num):
        if num > 30:
            return True
        else:
            return False
    re = filter(f1,[11,22,33,44,55,66])
    print(list(re)) #打印输出[33, 44, 55, 66]

     函数可以用lambda表示

    re = filter(lambda num:num > 30,[11,22,33,44,55,66] )
    print(list(re)) #打印输出[33, 44, 55, 66]

     17、map(函数,可迭代的对象)将可迭代的对象的每一个元素作为参数,循环调用函数,将函数返回的值,则加入filter的迭代对象

    例如:列表 li = [11,22,33,44,55],将函数的每个元素加100

    li = [11, 22, 33, 44, 55]
    def f1(num):
        return num + 100
    re = map(f1,li)
    print(list(re))

    可以用lambda表达式:

    li = [11, 22, 33, 44, 55]
    re = map(lambda num:num + 100,li)
    print(list(re))

     上面的例子,条件改为如果列表中是寄数则加100,否则原值返回:(可以加入三元运算符)

    #!usr/bin/env python
    # -*- coding:utf-8 -*-
    li = [11, 22, 33, 44, 55]
    re = map(lambda num:num + 100 if num % 2 == 1 else num,li)
    print(list(re)) #打印输出[111, 22, 133, 44, 155]

     18、globals()获取当前所有的全局变量

    print(globals())
    #返回:{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__':
    <_frozen_importlib_external.SourceFileLoader object at 0x000001ECB4E1B1D0>, '__spec__':
    None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__':
    'E:/python_code/2/seven day/built-in_function.py', '__cached__': None}

    19、locals() 获取当前的所有局部变量

    #!usr/bin/env python
    # -*- coding:utf-8 -*-
    def f1():
        name = 123
        print(locals())
        print(globals())  #返回:{'name': 123}
    
    print(f1())

    20、frozenset()  冻结的结合

    21、hash() 转化为哈希值,一般用在字典的key上,节省内存,并且能增加索引

    哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上来说基本上是不可能的。

    #!usr/bin/env python
    # -*- coding:utf-8 -*-
    dic = {'aafafafafasdsffdappoipewejkn':1}
    re = hash('aafafafafasdsffdappoipewejkn')
    print(re) #输出:4700510488390097995

    22、help() 查某个对象的帮助,一般配合dir() 使用

    help(list)

    上面代码会将list类的详细帮助信息打印出来

    23、id()  显示某个值的内存地址

    24、input(“提示内容”)  等待用户输入内容,并返回用户输入的内容。2.x系列,返回字符串要用raw_input()

    25、isinstance(类的对象,类名)  判断第一个参数是否是第2个参数的对象,如果是返回True,否则返回False

    #!usr/bin/env python
    # -*- coding:utf-8 -*-
    li = [11,22,33]
    bol = isinstance(li,list)
    print(bol)  #返回True

     26、iter(可迭代的对象)   生成一个可迭代的对象,并不显示所有的值,当循环的时候才去取值

    #!usr/bin/env python
    # -*- coding:utf-8 -*-
    li = [11,22,33,44]
    ob = iter(li)
    print(ob) #打印输出迭代对象:<list_iterator object at 0x000002216D01A080>
    r1 = next(ob)
    print(r1) #打印输出:11
    r2 = next(ob)
    print(r2) #打印输出:22
    r3 = next(ob)
    print(r3) #打印输出:33
    r4 = next(ob)
    print(r4) #打印输出:44

    27、max() min() 最大值,最小值

    #!usr/bin/env python
    # -*- coding:utf-8 -*-
    li = [11,22,33,44,55]
    re1 = max(li)
    re2 = min(li)
    print(re1)  #返回打印:55
    print(re2)  #返回打印:11

    28、memoryview() 判断对象的内存地址

    #!usr/bin/env python
    # -*- coding:utf-8 -*-
    name = 'sunshuhai'
    by = bytes(name,encoding='utf-8')
    addr = memoryview(by) #参数必须是字节类型
    print(by) #打印输出:<memory at 0x00000294F56D5F48>

     29、pow(2,10)   指的是2的10次方

    re = pow(2,10)
    print(re) #打印输出:1024

    30、print

    31、range

    32、repr(对象)  #表示在对象的类中找到__repr__,执行__repr__并将返回的结果返回给repr,然后由repr返回回来

    与ascii()函数用法基本相同,区别为:ascii如果是中文,ascii会进行转义

    #!usr/bin/env python
    # -*- coding:utf-8 -*-
    class Foo:
        def __repr__(self):
            return "hello world!!"
    fo = Foo()
    print(repr(fo)) #打印输出:hello world!!

    33、reversed(可迭代的对象)  把可迭代的有顺序索引的每个元素反转

    #!usr/bin/env python
    # -*- coding:utf-8 -*-
    li = [11,22,33,44,55]
    new_li = reversed(li)
    print(new_li) #打印输出迭代对象:<list_reverseiterator object at 0x0000023AB8F3A240>
    print(list(new_li)) #打印输出反转后的列表:[55, 44, 33, 22, 11]

     34、round() 四舍五入

    #!usr/bin/env python
    # -*- coding:utf-8 -*-
    num = 3.1415
    new_num = round(num,2) #四舍五入保留2位小数
    print(new_num) #打印输出:3.14

     35、slience()  切片,当调用函数或切片时,实际内部调用的是:__slienceitem__()

     36、sum(可迭代的对象)求和

    #!usr/bin/env python
    # -*- coding:utf-8 -*-
    li = [11,22,33,44]
    re = sum(li)
    print(re) #结果打印:110

    37、vars(对象) 查看当前对象中有多少个变量

    #!usr/bin/env python
    # -*- coding:utf-8 -*-
    re = vars(int)
    print(re) 

    38、zip(可迭代的对象1,可迭代的对象2) ,返回合并的可迭代的对象

    #!usr/bin/env python
    # -*- coding:utf-8 -*-
    li1 = [11,22,33,44]
    li2 = ['a','b','c','d']
    re = zip(li1,li2)
    print(re)  #打印迭代对象:<zip object at 0x00000145C83B2048>
    print(list(re)) #打印迭代后的对象:[(11, 'a'), (22, 'b'), (33, 'c'), (44, 'd')]

     39、__import__()  可以代替import

    #!usr/bin/env python
    # -*- coding:utf-8 -*-
    import random
    i = random.randrange(0,11)  #产生一个0-10的随机数
    print(i)

    可以用下面的代码代替:

    #!usr/bin/env python
    # -*- coding:utf-8 -*-
    r = __import__('random')
    i = r.randrange(0,11)
    print(i)

     40、sorted()  排序

    列表本来就有方法可以进行排序,例如:

    #!usr/bin/env python
    # -*- coding:utf-8 -*-
    li = [22,11,55,77,44,66]
    li.sort()
    print(li)  #结果打印输出:[11, 22, 44, 55, 66, 77]
    #!usr/bin/env python
    # -*- coding:utf-8 -*-
    li = [22,11,55,77,44,66]
    new_li = sorted(li)
    print(new_li) #打印输出:[11, 22, 44, 55, 66, 77]

    注意:sorted()进行排序时,必须保证可迭代对象中的元素是同一中类型,如果是数字类型则按照大小进行排序,如果是字符串类型,则按照数字在前面,字母在中间,汉字在后面进行排序。其中每一类按照第一位的大小,第一位不能判断时再判断第二位

    #!usr/bin/env python
    # -*- coding:utf-8 -*-
    li = ['a','22','256','211','A','','','','','1','ab']
    new_li = sorted(li)
    print(new_li) #打印输出:['1', '211', '22', '256', 'A', 'a', 'ab', '孙', '李', '赵', '钱']
    
    #输出列表字节
    for i in li:
        print(bytes(i,encoding='utf-8'))

    b'a'
    b'22'
    b'256'
    b'211'
    b'A'
    b'xe8xb5xb5'
    b'xe9x92xb1'
    b'xe5xadx99'
    b'xe6x9dx8e'
    b'1'
    b'ab'

  • 相关阅读:
    Fuck,什么破书
    数组指针与指针数组的问题
    .....不敢私藏,魂淡啊...游戏程序员们懂的
    毕业设计做个3D赛车游戏
    原来是这样的,所噶
    出来混,迟早都是要还的
    Struts2源码学习DefaultConfiguration的RuntimeConfigurationImpl方法(运行期改造)
    Struts2中拦截器实现AOP的原理分析
    人生的两个方向:一个是出门,一个是回家(转载)
    Struts 2框架结构图
  • 原文地址:https://www.cnblogs.com/sunshuhai/p/6339842.html
Copyright © 2020-2023  润新知