Python 嵌套函数(高级用法)

Python 嵌套函数(高级用法)

一、嵌套函数(高级用法)

  • 1.嵌套函数
    • 函数的嵌套调用是在"函数调用中再调用其他函数"。也就是说:函数嵌套允许在一个函数中调用另外一个函数。如下:实例 
# 定义全局变量
name = "Harry"
def ChangeName():
    name = "Ennnnn..."
    print("name01:%s" % name)

    def ChangeName2():
        name = "Miiii..."
        print("name02:%s" % name)

    # 执行函数ChangeName2()注意. 函数ChangeName执行完成后才会执行这个.
    ChangeName2()
    
# 执行函数ChangeName()
ChangeName() 
  • 2.二分查找
    • 从一列表中找到其中某一位置。 
# 定义一个无序列表
date = [21, 33, 22, 10, 9, 24, 8, 34, 53, 8, 23, 43, 1, 3, 10]
# 排序
date.sort()
print(int(len(date) / 2))

def binary_search(datesets, find_num):
    if len(datesets) > 0:
        find_nums = int(len(datesets) / 2)
        print(datesets[find_nums])
        if datesets[find_nums] == find_num:
            print("Find num:", datesets[find_nums])
        elif datesets[find_nums] > find_num:
            print("\033[31;1mgoing to left side \033[0m:", datesets[find_nums], datesets[find_nums:], find_num)
            binary_search(datesets[0:find_nums], find_num)
        else:
            print("\033[32;1mgoing to right  side \033[0m:", datesets[find_nums], datesets[find_nums:], find_num)
            binary_search(datesets[find_nums + 1:], find_num)
    else:
        print("Cannot fine the num", find_num)

# 如无法理解.请执行后进行分解.
binary_search(date, 24) 
  • 3.三元运算
#PS:三元运算
a =  4
b = 5
d = b if a < 10 else a
print(d)
  
#上边的三元运算相当于下边的.
if a < 10:
    d = b
else:
    d = a
print(d)
 
PS:上边的执行结果是一样的.【5】
    • 三元预算 + 匿名函数 组合 
date3 = map(lambda x:x*2 if x>5 else x,range(10))
  
for i in date3:
    print(i)
输出:0  1  2  3  4  5  12  14  16
ps:知晓结果分解说明  
1.首先这是一个匿名函数. 函数中if x > 5 else x 意思是正常打印0-5的数字 当x 大于5的时候*2并打印 
  • 4.高阶函数
    • 变量可以指向函数,函数的参数可以接收变量。那么一个函数就可以接收另一个函数作为参数,这种函数称为高阶函数 
def ddd(x,y,f):
    print("---f(x):",f(x))
    print("---f(y):",f(y))
    return f(x) + f(y)
  
def cacle(n):
    return n+2
  
res = ddd(3,-6,cacle)
print(res)
ps:此处的cacle 值是2 . return n+2 相当于是直接把2返回给cacle函数了. 因为此处的函数cacle中的形参没有接收到传过来的值. 默认为0
  
输出:
  ---f(x): 5
  ---f(y): -4
  1  ps:1是return f(x) + f(y)返回的   
  • 5.函数式编程 
    • 介绍 

函数是python内建支持的一种封装. 我们通过把大段代码拆成函数.通过一层一层的函数调用. 这种分解可以称之为面向过程的程序设计。函数就是面向过程的程序设计的基本单元。

函数式编程不是指的计算机中的函数.而是指的数学中的函数.一个函数的值权决定于函数参数的值. 不依赖其他状态. 如:sqrt(x)函数计算x的平方根. 只要x不变. 不论什么时候用.调用几次.值都是不变的 

  python对函数式编程提供部分支持. 由于Python允许使用变量.  因此. Python不是纯函数式编程语言.

    • 定义

  函数式编程也是一种编程范式. 也就是如何编写程序的方法论.【也就是:把运算过程尽量写成一系列嵌套的函数调用.】

posted @ 2018-12-03 23:26  HonGIm  阅读(8980)  评论(0)    收藏  举报