1、函数嵌套调用

所谓函数嵌套调用指的是,一个函数里面又调用了另外一个函数。

(1)函数嵌套的示例

def testB():
print('---- testB start----')
print('这里是testB函数执行的代码...(省略)...')
print('---- testB end----') def testA():
print('---- testA start----')
testB()
print('---- testA end----') testA()

(2)输出结果

如下图所示:

(3)函数嵌套的执行流程说明

说明:如果函数A中,调用了另外一个函数B,那么先把函数B中的任务都执行完毕之后,才会回到上次函数A执行的位置。

2、Python函数的简单应用

(1)打印线条

1)打印一条横线

def print_line():
print('-' * 20) print_line()
"""
输出结果:
--------------------
"""

2)打印多条横线

# 1. 打印一条横线
def print_line():
print('-' * 20) # 2. 函数嵌套调用,实现多条横线
def print_lines(num):
i = 0
while i < num:
print_line()
i += 1 print_lines(5)
"""
输出结果:
--------------------
--------------------
--------------------
--------------------
--------------------
"""

(2)函数计算

1)求三个数之和

# 1. 任意三个数之和
def sum_num(a, b, c):
return a + b + c result = sum_num(1, 2, 3)
print(result) # 6

2)求三个数平均值

# 2. 任意三个数求平均值
def average_num(a, b, c):
# 先求和 再除以3
sumResult = sum_num(a, b, c)
return sumResult / 3 result = average_num(1, 2, 3)
print(result) # 2.0

(3)打印图形

# 1.打印三角形
def print_triangle1():
for i in range(8):
for j in range(0, i):
print("*", end=" ") for j in range(i, 8):
print("$", end=" ") print("") print_triangle1() """
输出结果:
$ $ $ $ $ $ $ $
* $ $ $ $ $ $ $
* * $ $ $ $ $ $
* * * $ $ $ $ $
* * * * $ $ $ $
* * * * * $ $ $
* * * * * * $ $
* * * * * * * $
""" # 2、打印三角形
def print_triangle2():
for i in range(8):
for j in range(0, 8 - 1 - i):
print("*", end=" ")
for k in range(8 - i, 8):
print("$", end=" ") print("") print_triangle2() """
输出结果:
* * * * * * *
* * * * * * $
* * * * * $ $
* * * * $ $ $
* * * $ $ $ $
* * $ $ $ $ $
* $ $ $ $ $ $
$ $ $ $ $ $ $
""" # 3、打印正三角
def print_triangle3():
for i in range(8):
for j in range(0, 8 - i):
print(end=" ")
for k in range(8 - i, 8):
print("*", end=" ") print("") # 换行 print_triangle3() """
输出结果:
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
""" # 4、打印倒三角
def print_triangle4():
for i in range(7):
for j in range(0, i):
print(end=" ") for j in range(i, 7):
print("*", end=" ") print("") # 换行 print_triangle4() """
输出结果:
* * * * * * *
* * * * * *
* * * * *
* * * *
* * *
* *
*
"""

3、函数的说明文档

(1)函数的说明文档的作用

思考:定义一个函数后,程序员如何书写程序能够快速提示这个函数的作用?

答:用注释。

思考:如果代码多,我们是不是需要在很多代码中找到这个函数定义的位置才能看到注释?如果想更方便的查看函数的作用怎么办?

答:使用函数的说明文档。

(2)函数说明文档的语法

定义函数的说明文档:在定义函数时,可以在函数内部编写函数的说明文档。编写函数的说明文档非常简单,其实直接在函数内的第一行注释的字符串就是函数的说明文档。可以用单引号,也可以使用三引号,但是我们说明函数的时候一行会描述不清楚,通常我们会使用三引号来定义函数的说明文档。

def 函数名(参数):
""" 说明文档的位置 """
代码
......

(3)查看函数的说明文档

help(函数名)

help()是Python中的内置函数。

help()函数作用:通过help()函数可以查询Python中的函数的用法(查看函数的说明文档)。

(4)快速体验

def sum_num(a, b):
""" 求和函数 """
return a + b help(sum_num) # 函数的说明文档的高级使用
def sum_num1(a, b):
"""
求和函数sum_num1
:param a: 参数1
:param b: 参数2
:return: 返回值
"""
return a + b help(sum_num1) """
输出结果:
sum_num(a, b)
求和函数 sum_num1(a, b)
求和函数sum_num1
:param a: 参数1
:param b: 参数2
:return: 返回值
"""

(5)拓展:标准的函数说明文档

# -> int:表示返回值类型
# 参数后的:类型,表示接收此参数的类型。
def fn(a:int,b:bool,c:str='hello') -> int:
'''
这是一个文档字符串的示例 函数的作用:。。。。。
函数的参数:
a,作用,类型,默认值。。。。
b,作用,类型,默认值。。。。
c,作用,类型,默认值。。。。
'''
return 10 help(fn)

结果如下:

『无为则无心』Python函数 — 28、Python函数的简单应用的更多相关文章

  1. 『无为则无心』Python函数 — 25、Python中的函数

    目录 1.函数的使用 (1)定义函数 (2)调用函数 (3)使用函数的注意事项 2.函数的参数 3.实参的类型 Python函数的说明: Python中函数的应用非常广泛,前面章节中我们已经接触过多个 ...

  2. 『无为则无心』Python函数 — 26、Python函数参数的传递方式

    目录 1.位置参数 2.关键字参数 3.缺省参数(默认参数) 4.不定长参数(可变参数) (1)包裹位置传递 (2)包裹关键字传递 5.位置参数.默认参数.可变参数的混合使用 6.拓展:参数解包 提示 ...

  3. 『无为则无心』Python函数 — 27、Python函数的返回值

    目录 1.返回值概念 2.return关键字的作用 3.返回值可以返回的数据类型 4.函数如何返回多个值 5.fn5 和 fn5()的区别 6.总结: 1.返回值概念 例如:我们去超市购物,比如买饮料 ...

  4. 『无为则无心』Python函数 — 29、Python变量和参数传递

    目录 1.Python的变量 (1)Python变量不能独立存在 (2)变量是内存中数据的引用 (3)注意点 2.了解变量的引用 3.Python的参数传递(重点) (1)示例 (2)结论 (3)总结 ...

  5. 『无为则无心』Python函数 — 30、Python变量的作用域

    目录 1.作用于的概念 2.局部变量 3.全局变量 4.变量的查找 5.作用域中可变数据类型变量 6.多函数程序执行流程 1.作用于的概念 变量作用域指的是变量生效的范围,在Python中一共有两种作 ...

  6. 『无为则无心』Python函数 — 31、命名空间(namespace)

    目录 1.什么是命名空间 2.三种命名空间 3.命名空间查找顺序 4.命名空间的生命周期 5.如何获取当前的命名空间 1.什么是命名空间 命名空间指的是变量存储的位置,每一个变量都需要存储到指定的命名 ...

  7. 『无为则无心』Python函数 — 32、递归

    目录 1.什么叫递归函数 2.递归的应用场景 3.递归的特点 4.应用:3以内数字累加和 5.应用:阶乘 6.总结 1.什么叫递归函数 Python中,在函数内部,可以调用其他函数.如果一个函数在内部 ...

  8. 『无为则无心』Python函数 — 33、高阶函数

    目录 1.高阶函数的定义 2.体验高阶函数 3.内置高阶函数 (1)map()函数 (2)reduce()函数 (3)filter()函数 1.高阶函数的定义 把函数作为参数传入(把一个函数作为另外一 ...

  9. 『无为则无心』Python面向对象 — 54、重写和super()函数

    目录 1.重写 2.super()函数 方式一 方式二 __mro__内置类属性说明 1.重写 在子类中如果有和父类同名的方法,则通过子类实例去调用该方法时,会调用子类中的该方法而不是父类的方法,这个 ...

随机推荐

  1. 启动dubbo消费端过程提示No provider available for the service的问题定位与解决

    文/朱季谦 某次在启动dubbo消费端时,发现无法从zookeeper注册中心获取到所依赖的消费者API,启动日志一直出现这样的异常提示 Failed to check the status of t ...

  2. 痞子衡嵌入式:改动i.MXRT1xxx里IOMUXC_GPR寄存器保留位可能会造成系统异常

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是改动i.MXRT1xxx里IOMUXC_GPR寄存器保留位可能会造成系统异常. 痞子衡的嵌入式技术交流群里有一位非常活跃的朋友(网名:文 ...

  3. noip模拟4[随·单·题·大佬]

    woc    woc   woc难斩了人都傻了 害上来先看T1,发现这不就是一个小期望嘛(有啥的)真是!!打算半个小时秒掉 可是吧,读着读着题面,发现这题面有大问题,后来去找老师,还是我nb给题挑错, ...

  4. Xilinx低比特率高品质 ABR 视频实时转码(HPE 参考架构)

    Xilinx低比特率高品质 ABR 视频实时转码(HPE 参考架构) 介绍 对实时视频流的需求给视频服务提供商带来了严峻挑战,必须在管理基础设施和互联网带宽运营成本,还要为客户提供高质量体验.鉴于视频 ...

  5. 旷视MegEngine网络搭建

    旷视MegEngine网络搭建 在 基本概念 中,介绍了计算图.张量和算子,神经网络可以看成一个计算图.在 MegEngine 中,按照计算图的拓扑结构,将张量和算子连接起来,即可完成对网络的搭建.M ...

  6. 尚硅谷Java——宋红康笔记【day11-day18】

    day11 Eclipse中的快捷键: * 1.补全代码的声明:alt + / * 2.快速修复: ctrl + 1 * 3.批量导包:ctrl + shift + o * 4.使用单行注释:ctrl ...

  7. Ubuntu18.04的下载与安装(全过程纪录)

    unbuntu18.04的下载与安装 注:由于大部分过程是以图片形式说明,所以可能会导致网页浏览不流畅 前言 有时候由于个人计算机中文件的频繁移动,导致虚拟机的镜像文件有时候莫名删除了或者不见了(说到 ...

  8. 十一、设置Nginx开机自启动

    一.创建nginx.service文件 [root@svr7 ~]# vim /lib/systemd/system/nginx.service [Unit]Description=nginx ser ...

  9. xxl-job执行器的注册

    一.执行器注册流程 二.具体流程 1.注册监控线程 //类:JobRegistryHelper.java:方法:public void start() registryMonitorThread = ...

  10. 在vue项目中使用scss,以及vscode适配scss语法(解决使用scss语法编辑器报错)

    项目搭建好之后 安装sass 依赖包 npm install --save-dev sass-loader //sass-loader依赖于node-sass npm install --save-d ...