当前位置:   article > 正文

Python 第九课:函数(中)_def fun(): s = input() for i in s: n = n + print(n

def fun(): s = input() for i in s: n = n + print(n)fun()

1. 函数的返回值(接上函数(上))

使用实例进行说明:

def fun(*args):
	r = 0
	for i in agrs:
		r += i
	print(r) # 仅仅是能观测到的值

fun(1, 2, 3, 4, 5)
print(fun(1, 2, 3, 4, 5)) # 此处为None说明,没有返回值,验证了这个观点
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

得到
在这里插入图片描述

1.1 如何得到函数的返回值?

语句return 参数:对上述代码进行修改得到

def fun(*args):
    r = 0
    for i in args:
        r += i
    print(r) # 仅仅是能观测到的值
    return r

fun(1, 2, 3, 4, 5)
print(fun(1, 2, 3, 4, 5)) # 出现返回值15
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

运行发现:
在这里插入图片描述

1.1.1 return特性

  1. 其后面所跟的值会成为返回值
  2. return后面的代码不会执行
  3. 当存在return时,其后没有值,函数返回None

2. 函数的调用总结

  1. 函数的调用可以使函数执行
  2. 函数的调用可以传递实参
  3. 函数的调用可以接受函数的返回值

2.1 函数调用的补充

  1. fun是函数对象——打印fun,会打印id
  2. fun()是函数的调用——打印fun(),会打印函数的返回值

3. 文档字符串

def fun(a, b):
	'''回车'''
  • 1
  • 2

得到
在这里插入图片描述
所以,我们可以将文档字符串理解为,给函数写注释。

help()语句也可用来查询函数注释。

4. 函数的作用域

包含全局作用域,局部作用域

4.1 局部作用域

  1. 特点是顶格写的代码
  2. 执行时生成,结束时销毁
  3. 除函数以外,都是全局作用域
  4. 可以在任意位置使用

4.2 局部作用域

又称函数作用域,函数创建时生成,调用后销毁

补充:局部作用域中,使用global,可以声明 此处为全局变量

5. 命名空间

语句locals()来获取,用来储存变量的字典

6. 递归函数

递归:函数自己调用自己的方式

6.1 解决问题的一种方式

  1. 从大到小分解问题
  2. 发现其规律

6.2 递归条件

当不设置递归条件时:

def fun():
	fun() # 变成无穷递归
fun() 
  • 1
  • 2
  • 3

在这里插入图片描述
因此我们需要考虑,使递归停下来的正确方式

  1. 基线条件:问题可以按照相同的规律进行下去,直到分解为最小的问题,当满足时,停止。
  2. 递归条件:可以将问题持续分解的条件。

课后练习

在这里插入图片描述

# Q1
def num(n):
    if n % 400 == 0 or (n % 4 == 0 and n % 100 != 0):
        print('闰年')
    else:
        print('不是闰年')
num(int(input('请输入一个年份:')))

# Q2
def fun(n):
    if n == 10:
        return 1
    else:
        return (fun(n+1)+1)*2
for i in reversed(range(1, 11)):
    print('第%s天' % i, '剩余%s' % fun(i))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/54684
推荐阅读
相关标签
  

闽ICP备14008679号