day8

作者: 木偶演员 | 来源:发表于2018-07-25 17:39 被阅读0次

01

  • 声明一个函数,就是在声明一个变量
  • 作用 赋值 查看类型 作为参数 作为表达式
函数名 当作变量使用
def fun1(a):
    print((a))
print(fun1,type(fun1))

a =fun1
# funb = fun1(10) +100
a(100)
将函数 fun1作为列表的元素
functions = [fun1,fun1(10)]
functions[0]("abc")
将函数作为参数
def my_sum(*number):
    sum1 = 0
    for item in number:
        sum1 += item
    return sum1

def my_mul(*number):
    sum1 = 1
    for item in number:
        sum1 *= item
    return sum1


def operation(method, *number):
    return method(number)
三目运算符 x if x>y else y
  • 写个函数有一个参数 要求传入一个运算符(+ - * /)返回对应的值
def get_me (a,*num):
    if a == "+" :
        sum1 = 0
        for item in num:
            sum1 += item
        return sum1
    if a =="*":
        sum1 = 1
        for item in num:
            sum1 *= item
        return sum1
print(get_me("+",10,20))

02

作用域 : 一个变量可以使用的范围,就是这个变量的作用域
全局变量: 从申明开始,到文件结束,都可以使用
局部变量: 在函数中使用

03

  • 匿名函数: 本质还是函数,以另外一种方式申明

    • 声明:
      ambda 参数列表:返回值 ---->结果就是一个函数变量

04

递归函数 : 在函数本身调用函数
def fun1():
    print("=====")
    fun1

理论上能循环的事情,递归都可以做
2.怎么写一个递归函数
   # a.找到临界值
   # b.找关系: 假设当前函数对应的功能已经实现 找f(n)  和 f(n-1)的关系
   # c.使f(n-1)
递归举例
def my_sum(n):
    if n == 1:
        return 1

用递归求246***n (n)

def per(n):
    print("*"*n)
    if n == 1:
        return "*"
    per(n-1)
per(4)

per 4
def per(n):
    if n == 1:
        print('*')
        return "*"
    per(n-1)
    print("*" * n)
per(4)
print('=====')
"""
per(4)  n=4  per(3) print('*'*4)
per(3)  n=3  per(2) print("*" * 3)
per(2)  n=2  * print("*" * 2)

per(1) n=1  

**
***
****
  • 数调用的过程是一个压栈的过程(没调用一次函数,系统都会要为其分配内存空间,用 来储存函数中变量的=和参数,这个内存使用完会自我销毁
  • 能不用就不用

05

函数的返回值
a.就是函数返回给调用者的值
b.就是return关键字后面的的表达式是我值
c.就是函数调用表达式的值
***函数调用
        a.先回到函数调用的位置
        b.传参
        c.执行函数体
        d.执行函数体 ,
return 关键字
a.将return后面值,返回给函数表达式
b.结束函数
函数的结束
a.函数体执行完
b.遇到return

"""

"""

"""
"""
3.函数调用表达式
python中每个函数表达式都是有值的

相关文章

网友评论

      本文标题:day8

      本文链接:https://www.haomeiwen.com/subject/hhhmmftx.html