zoukankan      html  css  js  c++  java
  • Python常用内置函数

    一、函数递归

    递归:函数A调用函数A

    递归的核心:递进的时候能够达到一个结果,问题规模越来越小(不一定要真正的达到);设置一个条件,能够让最后异次函数调用结束。

    递归更多的是一种思想,用来解决某种问题

    def age_func(x):  # x的规模在减小  # x = 5 # x =4 # x =3 # x =2  # x = 1 # x = 0
        global age
        if x == 0:
            return age  # 终止函数,age=26,这是age_func(0)
        
        return age_func(x - 1) + 2  # age_func(4) # age_func(3) # age_func(2) # age_func(1) # age_func(0)
    
    
    res = age_func(5)
    print(res)  # 26
    
    '''
    age_func(5) --> return age_func(4)+2 == 24+2 =26
    age_func(4) --> return age_func(3)+2 == 22+2 = 24
    age_func(3) --> return age_func(2)+2 == 20+2 = 22
    age_func(2) --> return age_func(1)+2 == 18+2 = 20
    age_func(1) --> return age_func(0)+2  == 16+2= 18
    '''
    

    二、内置函数

    1、常用

    1.bytes()

    解码字符。

    res = '你好'.encode('utf8')
    print(res)
    b'xe4xbdxa0xe5xa5xbd'
    res = bytes('你好', encoding='utf8')
    print(res)
    b'xe4xbdxa0xe5xa5xbd'
    

    2.chr()/ord()

    chr()参考ASCII码表将数字转成对应字符;ord()将字符转换成对应的数字。

    print(chr(65))
    A
    print(ord('A'))
    65
    

    3.divmod()

    分栏。

    print(divmod(10, 3))
    (3, 1)
    

    4.enumerate()

    带有索引的迭代。

    l = ['a', 'b', 'c']
    for i in enumerate(l):
        print(i)
    (0, 'a')
    (1, 'b')
    (2, 'c')
    

    5.eval()

    把字符串翻译成数据类型。

    lis = '[1,2,3]'
    lis_eval = eval(lis)
    print(lis_eval)
    [1, 2, 3]
    

    6.hash()

    是否可哈希。

    print(hash(1))
    1
    

    2、了解

    求绝对值。

    print(abs(-13))  # 求绝对值
    13
    

    2.all()

    可迭代对象内元素全为真,则返回真。

    print(all([1, 2, 3, 0]))
    print(all([]))
    False
    True
    

    3.any()

    可迭代对象中有一元素为真,则为真。

    print(any([1, 2, 3, 0]))
    print(any([]))
    True
    False
    

    4.bin()/oct()/hex()

    二进制、八进制、十六进制转换。

    print(bin(17))
    print(oct(17))
    print(hex(17))
    0b10001
    0o21
    0x11
    

    5.dir()

    列举出所有time的功能。

    import time
    print(dir(time))
    ['_STRUCT_TM_ITEMS', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'altzone', 'asctime', 'clock', 'ctime', 'daylight', 'get_clock_info', 'gmtime', 'localtime', 'mktime', 'monotonic', 'perf_counter', 'process_time', 'sleep', 'strftime', 'strptime', 'struct_time', 'time', 'timezone', 'tzname', 'tzset']
    

    6.frozenset()

    不可变集合。

    s = frozenset({1, 2, 3})
    print(s)
    frozenset({1, 2, 3})
    

    7.globals()/loacals()

    查看全局名字;查看局部名字。

    # print(globals())
    def func():
        a = 1
    #     print(globals())
        print(locals())
    
    
    func()
    {'a': 1}
    

    8.pow()

    print(pow(3, 2, 3))  # (3**2)%3
    0
    

    9.round()

    print(round(3.5))
    4
    

    10.slice()

    lis = ['a', 'b', 'c']
    s = slice(1, 4, 1)
    print(lis[s])  # print(lis[1:4:1])
    ['b', 'c']
    

    11.sum()

    print(sum(range(100)))
    4950
    

    12.import()

    通过字符串导入模块。

    m = __import__('time')
    print(m.time())
    1556607502.334777
    

    三、面向过程编程

    # 面向 过程 编程
    
    # 按照    流程(流水线的思想)  码代码
    
    
    # 造瓶子
    # 输入原材料(一堆塑料) --> 融化塑料 --> 造瓶身和瓶盖  --> 输出瓶子
    # 一堆变量/参数  --> 函数1(过程1)  --> 函数2(过程2) --> 结果
    #                    函数3(过程3) --> 函数2(过程2)
    
    # 上一个过程的输出必定是下一个过程的输入
    
    # 优点:
    # 1. 思路清晰
    
    
    # 缺点:
    # 1. 上一个过程完蛋了,下一个过程也完蛋
    # 2. 功能与功能之间不独立
    # 3. 牵一发而动全身,不方便修改/扩展功能,可扩展性差
    
  • 相关阅读:
    Redis到底该如何利用?
    AutoMapper搬运工之自定义类型转换
    AutoMapper搬运工之初探AutoMapper
    【ELK】docker-compose搭建ELK单机环境
    [flowable工作流引擎]基本概念及术语
    shell遍历文件夹读取文件夹下的文件
    vector类的简单实现
    string类的实现
    接口安全认证
    C# lock private VS private static
  • 原文地址:https://www.cnblogs.com/17vv/p/11353914.html
Copyright © 2011-2022 走看看