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. Java中生成唯一标识符的方法(Day_48)

    有时候业务需要生成唯一标识符,但又不能依赖于数据库中自动递增的字段产生唯一ID,比如多表同一字段需要统一一个唯一ID,此时我们就需要用程序来生成一个唯一的全局ID. UUID UUID是指在一台机器上 ...

  2. 第11讲 | TCP协议(上):因性恶而复杂,先恶后善反轻松

    第11讲 | TCP协议(上):因性恶而复杂,先恶后善反轻松 TCP 包头格式 我们先来看 TCP 头的格式.从这个图上可以看出,它比 UDP 复杂得多. 首先,源端口号和目标端口号是不可少的,这一点 ...

  3. [leetcode] 68. 文本左右对齐(国区第240位AC的~)

    68. 文本左右对齐 国区第240位AC的~我还以为坑很多呢,一次过,嘿嘿,开心 其实很简单,注意题意:使用"贪心算法"来放置给定的单词:也就是说,尽可能多地往每行中放置单词. 也 ...

  4. GO学习-(26) Go语言操作mongoDB

    Go语言操作mongoDB mongoDB是目前比较流行的一个基于分布式文件存储的数据库,它是一个介于关系数据库和非关系数据库(NoSQL)之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. ...

  5. GO学习-(15) Go语言基础之包

    Go语言基础之包 在工程化的Go语言开发项目中,Go语言的源码复用是建立在包(package)基础之上的.本文介绍了Go语言中如何定义包.如何导出包的内容及如何导入其他包. Go语言的包(packag ...

  6. node.js学习(4)事件

    1 导入事件库

  7. Java | Stream流、泛型、多线程 | 整理自用

    1.lambda 表达式 lambda 的延迟执行 可以对程序进行优化,尤其是使用 if {} else {} 条件判断,先判断条件是否成立,再传入计算好的参数. functionName( para ...

  8. Selenium-python 之 frame定位元素

    定位元素时经常会出现定位不到元素,这时候我们需要观察标签的上下文,一般情况下这些定位不到的元素存放在了frame或者放到窗口了,只要我们切入进去就可以很容易定位到元素. 处理frame时主要使用到sw ...

  9. QT基本数据类型

    因为Qt是一个C++框架, 因此C++中所有的语法和数据类型在Qt中都是被支持的, 但是Qt中也定义了一些属于自己的数据类型, 下边给大家介绍一下这些基础的数类型. QT基本数据类型定义在#inclu ...

  10. WordPress安装篇(4):YUM方式安装LNMP并部署WordPress

    YUM方式安装软件的优点就是简单.方便.快捷,本文介绍在Linux上如何使用YUM方式快速安装LNMP并部署WordPress.使用Linux CentOS 7.9 + Nginx 1.18 + My ...