代码改变世界

3-5递归-函数

2017-11-26 22:02  mmwss  阅读(141)  评论(0编辑  收藏  举报
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#递归 最大递归999次
#函数内部,调用自己
# 特性 1. 有结束条件
# 2. 每进入更深一层,递归时比上个递归少
# 3. 递归效率不高,会导致栈溢出
'''
def a(n): #递归
print(n) #打印
return a(n+1) 调用自己 最多999次 怕你死机
a(0)
'''

def a(n):
print(n)
if int(n/2) >0:
return a(int(n/2))
print('-> ',n)
a(7)

#函数 执行多行代码

#函数式编程 抽象高
# 汇编 加减乘除的指令代码,各种条件判断和跳转指令
# 低级的语言 抽象低,执行效率高,如C语言
# 高级的语音 抽象高,执行效率低,如Lisp=函数式编程

#函数式编程 python支持的少
#没有象象,有确定输入,则有确定输出
# y=2x x是有值则y有值 2x=x+x

###如果要写 (1+2)*3-4
#传统式编程
# var a=1+2 ;var b=a*3 ;var c=b-4
#函数式编程
# var result = subtract(multiply(add(1,2),3),4)

#高阶函数
#变量指函数,函数的参数接收变量,一个函数接收别一个函数为参军
def add(x,y,f): #abs() 把()里面变绝对值
return f(x) + f(y)

a=add(1,-2,abs)
print(a)
#用的少

#字符串转换字典
a='''{'a':'x',
'b':'y',
'c':'z'}'''
#a是字符串
b=eval(a) #把a转换成字典并给b
print(a)
print('字典: ',b['c'])