day9 函数

2018-08-30  本文已影响0人  上邪5415

  今天主要学习匿名函数、变量的作用域、递归函数、模块等内容。

  1、匿名函数的声明

  格式为:函数名= lambda 参数列表:返回值
  函数名:变量名
  lambda:声明匿名函数的关键字
  参数列表:参数1,参数2....
  冒号:固定写法
  返回值:表达式,表达式的值就是返回值。一个函数可以有多个返回值,用括号()括起来以元祖形式进行返回。
  匿名函数的调用:和普通函数一样,用“函数名(实参列表)”进行调用。

示例:
my_sum = lambda x,y:x+y
print(my_sum(0,1))结果为1

  2、变量的作用域

  作用域是指一个变量能够使用的范围,分为全局变量和局部变量。

a. x,y都是全局变量
for x in range(10):
    print(x)
    for y in range(10):
        print(y)
b.变量x,y,z都是局部变量
def func3(x, y):
    z = 'abc'
    print(x, y, z)

  3、递归函数

  在函数的函数体中调用函数本身,这样的函数就是递归函数。

  怎么写递归函数?
  第一步: 找临界值 (找到让循环结束的值/找到能够确定函数结果值)
  第二步: 假设函数的功能已经实现的前提下,找关系 (找f(n)和f(n-1)/当次循环和上次循环的关系)
  第三步:根据f(n)和f(n-1)的关系,来通过f(n-1)实现f(n)的效果

用递归实现1+2+3...+n
def my_sum(n):
    # 1.找临界值(在临界值的位置一定要让函数结束)
    if n == 0:
        return 0
    # 2.找关系
    """
    my_sum(n) : 1+2+3+...+n-1+n
    my_sum(n-1) : 1+2+3+...+n-1
    my_sum(n) = my_sum(n-1)+n
    """
    # 3.使用f(n-1)实现f(n)的效果
    return my_sum(n-1) + n
print(my_sum(5))

  4、模块

  一个py文件就是一个模块。

  怎么使用其他模块中的内容?
a.import 模块
  通过"模块.内容"的形式去使用模块中的内容(能够使用是全局变量、函数、类)
b.from 模块 import 模块中的内容
  可以直接使用模块中的内容
c. from 模块 import *
  将模块中的所有的内容都导入

现有两个py文件,A.py和B.py。
A.py文件代码如下:
def sayhello():
    print('Hello!')
print('Hi!')
print(__name__)
B.py文件代码如下:
import A
A.sayhello()
print('End')
执行B.py文件,显示效果如下:
Hi!
A
Hello!
End
上一篇下一篇

猜你喜欢

热点阅读