小结
函数递归
num = 0
count = 0
while count < 101:
print(count) # 0--100循环
num += count
count += 1
print(num) # 0--100求和
递归 : 递进 ; 归来
count = 0
def f1():
global count # 修改成全局的count,让下面的count都是全局的count
count += 1
print(count)
f1()
f1()
递归的核心:递进的时候能够到达一个结果,问题的规模越来越小(不一定要真正到达);设置一个条件,能够让最后一次函数调用结束;
递归代码:(递归更多是一种思想,用来解决某种问题)
count = 0
def f1():
global count # 将局部里面的count修改成全局的count
if count > 100:
return
count += 1
print(count)
f1()
f1()
s = '{[]}'
def isvalid(s: str) ->bool:
print(s)
s = ''
if not s:
return True
if s.find('[]') != -1 or s.find('
if '{}' in s:
s = s.replace('{}','')
if '[]'in s:
s = s.replace('[]','')
if '()'in s:
s = s.replace('()','')
if s == '':
return True
res = isvalid(s)
print(res)
if not res:
return False
else:
return True
res = isvalid(s)
print(res)
# 求年龄
# 16/18/20/22/24/26,求第五人的年龄
def func(x):
age = 16
age = age + 2*x
return age
res = func(5)
print(res)
# 内置方法
# abs(绝对值)
#print(abs(-10)) # 10
# bin (二进制)
#print(bin(97)) # 0b1100001 :011
# hex (十六进制)
#print(hex(97)) # 0x61
# oct (八进制)
# print(oct(97)) # 0o141
# def func():
# pass
# print('callable(func):',callable(func)) #
#print('callable(1,]):',callable([1,])) # F
# chr() 返回ascll码对应字符
# print(chr(97)) #a
# ord() chr()参考ASCII码表将数字转成对应字符;ord()将字符转换成
#vprint(ord('a'))
# enumerate 将元素按索引位置排列出来
# for ind, value in enumerate([1,2,3]):
# print(ind,value) # 0 1
# # 1 2
# # 2 3
# eval() 把字符串翻译成数据类型
#print("eval('1+1'):", eval('1+1'))# eval('
# exec() 执行,相当于print,在python2中使用
# exec('print("12345")') #12345
# 只要记住一个enumerate
面向过程编程
拆分:面向 过程 编程
按照 流程(流水线思想) 码代码
一堆变量/参数--》函数一(过程一)--》函数二(过程二)--》结果
上一个过程的输出必定是下一个过程的输入
面向过程编程优点:思路清晰
缺点:
- 上一个过程完蛋了,下一个过程也完蛋
- 功能与功能之间不独立
- 牵一发而动全身