zoukankan      html  css  js  c++  java
  • 【0814 | Day 15】递归/内置函数/面向过程编辑

    递归

    一、什么是递归

    递归:调用函数本身的同时能结束。

    递归

    二、为什么要用递归

    普通的重复,可用while取代

    三、如何用递归

    可参考汉诺塔

    def move(n, a, b, c):  #n圆盘数,a为起始圆柱,b为过渡圆柱,c为目标圆柱
        if n == 1:
            print(a, '-->', c)
        else:
            move(n - 1, a, c, b)
            print(a, '-->', c)
    
            move(n - 1, b, a, c)
    
    move(7,'A','B','C')
    

    内置函数

    55内置函数-内置函数.jpg?x-oss-process=style/watermark

    一、掌握

    1.bytes( )

    解码字符

    res = '你好'.encode('utf8')
    print(res)
    

    ---> b'xe4xbdxa0xe5xa5xbd'

    2.chr( )/ord( )

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

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

    ---> 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

    二、了解

    1.abs( )

    求绝对值

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

    ---> 13

    2.all( )

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

    print(all([1, 2, 3, 0]))  #0为False
    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. 各环节不独立

    2.牵一发而动全身,延展性差

  • 相关阅读:
    Online ddl 工具之pt-online-schema-change
    【MySql】mysql 慢日志查询工具之mysqldumpslow
    赶集网mysql开发36条军规
    MySQL数据库高并发优化配置
    mysql的表分区
    mysql 如果处理货币金钱类型
    bootstrab table+表格 select可编辑完整实例
    mongoDb 给表添加+ 删除字段
    mongoDb +Java+springboot
    java+数据库+D3.js 实时查询人物关系图
  • 原文地址:https://www.cnblogs.com/fxyadela/p/11352364.html
Copyright © 2011-2022 走看看