博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
day 15
阅读量:5237 次
发布时间:2019-06-14

本文共 2614 字,大约阅读时间需要 8 分钟。

一、函数递归

递归:函数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 =26age_func(4) --> return age_func(3)+2 == 22+2 = 24age_func(3) --> return age_func(2)+2 == 20+2 = 22age_func(2) --> return age_func(1)+2 == 18+2 = 20age_func(1) --> return age_func(0)+2  == 16+2= 18'''

二、内置函数

1、掌握

1.bytes()

解码字符。

res = '你好'.encode('utf8')print(res)b'\xe4\xbd\xa0\xe5\xa5\xbd'res = bytes('你好', encoding='utf8')print(res)b'\xe4\xbd\xa0\xe5\xa5\xbd'

2.chr()/ord()

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

print(chr(65))Aprint(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([]))FalseTrue

3.any()

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

print(any([1, 2, 3, 0]))print(any([]))TrueFalse

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

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

print(bin(17))print(oct(17))print(hex(17))0b100010o210x11

5.dir()

列举出所有time的功能。

import timeprint(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)%30

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. 牵一发而动全身,不方便修改/扩展功能,可扩展性差

转载于:https://www.cnblogs.com/17vv/p/11353914.html

你可能感兴趣的文章
tcpdump截帧工具使用
查看>>
Android中的多线程断点下载
查看>>
asp.net 本质论学习
查看>>
ASP.NET Web API上实现 Web Socket
查看>>
软件测试(2048小游戏测试用例)
查看>>
PBXCp Error
查看>>
[poj 3539] Elevator (同余类bfs)
查看>>
[tyvj2054] 四叶草魔杖 (最小生成树 状压dp)
查看>>
使用maven创建web项目
查看>>
Spring mvc shiro 整合
查看>>
解决 maven 项目启动 提示 class not find
查看>>
weightpro自动蒙皮插件
查看>>
C++的性能优化实践【转】
查看>>
cartographer 最新版安装测试
查看>>
JavaScript使用方法
查看>>
Tomcat - ClassFormatException的解决方法
查看>>
Markdown - 如何给文本加下划线
查看>>
2018年11月17号 训练周记
查看>>
转博客园一位前辈关于.NET通过NCO3.0连接SAP的系列文章
查看>>
【NOIP2012模拟10.9】电费结算
查看>>