【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'\xe4\xbd\xa0\xe5\xa5\xbd'

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.牵一发而动全身,延展性差

posted @ 2019-08-14 15:41  fxyadela  阅读(129)  评论(0编辑  收藏  举报