『无为则无心』Python函数 — 28、Python函数的简单应用
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函数的简单应用的更多相关文章
- 『无为则无心』Python函数 — 25、Python中的函数
目录 1.函数的使用 (1)定义函数 (2)调用函数 (3)使用函数的注意事项 2.函数的参数 3.实参的类型 Python函数的说明: Python中函数的应用非常广泛,前面章节中我们已经接触过多个 ...
- 『无为则无心』Python函数 — 26、Python函数参数的传递方式
目录 1.位置参数 2.关键字参数 3.缺省参数(默认参数) 4.不定长参数(可变参数) (1)包裹位置传递 (2)包裹关键字传递 5.位置参数.默认参数.可变参数的混合使用 6.拓展:参数解包 提示 ...
- 『无为则无心』Python函数 — 27、Python函数的返回值
目录 1.返回值概念 2.return关键字的作用 3.返回值可以返回的数据类型 4.函数如何返回多个值 5.fn5 和 fn5()的区别 6.总结: 1.返回值概念 例如:我们去超市购物,比如买饮料 ...
- 『无为则无心』Python函数 — 29、Python变量和参数传递
目录 1.Python的变量 (1)Python变量不能独立存在 (2)变量是内存中数据的引用 (3)注意点 2.了解变量的引用 3.Python的参数传递(重点) (1)示例 (2)结论 (3)总结 ...
- 『无为则无心』Python函数 — 30、Python变量的作用域
目录 1.作用于的概念 2.局部变量 3.全局变量 4.变量的查找 5.作用域中可变数据类型变量 6.多函数程序执行流程 1.作用于的概念 变量作用域指的是变量生效的范围,在Python中一共有两种作 ...
- 『无为则无心』Python函数 — 31、命名空间(namespace)
目录 1.什么是命名空间 2.三种命名空间 3.命名空间查找顺序 4.命名空间的生命周期 5.如何获取当前的命名空间 1.什么是命名空间 命名空间指的是变量存储的位置,每一个变量都需要存储到指定的命名 ...
- 『无为则无心』Python函数 — 32、递归
目录 1.什么叫递归函数 2.递归的应用场景 3.递归的特点 4.应用:3以内数字累加和 5.应用:阶乘 6.总结 1.什么叫递归函数 Python中,在函数内部,可以调用其他函数.如果一个函数在内部 ...
- 『无为则无心』Python函数 — 33、高阶函数
目录 1.高阶函数的定义 2.体验高阶函数 3.内置高阶函数 (1)map()函数 (2)reduce()函数 (3)filter()函数 1.高阶函数的定义 把函数作为参数传入(把一个函数作为另外一 ...
- 『无为则无心』Python面向对象 — 54、重写和super()函数
目录 1.重写 2.super()函数 方式一 方式二 __mro__内置类属性说明 1.重写 在子类中如果有和父类同名的方法,则通过子类实例去调用该方法时,会调用子类中的该方法而不是父类的方法,这个 ...
随机推荐
- F5 api接口开发实战(一)
本人从18年下旬,开始从事F5负载均衡的自动化开发工作,主要使用python编程语言,开发的F5功能模块为LTM和GTM. F5开发简介 1.F5管理模式 F5的管理模式主要有4种(不包含snmp), ...
- 实践指南-网页生成PDF
一.背景 开发工作中,需要实现网页生成 PDF 的功能,生成的 PDF 需上传至服务端,将 PDF 地址作为参数请求外部接口,这个转换过程及转换后的 PDF 不需要在前端展示给用户. 二.技术选型 该 ...
- 4. springmvc底层原理2
Spring mvc 是子容器 Spring 是 父容器 =================================================================== pub ...
- pika详解(三)SelectConnection及其他Connection
pika详解(三)SelectConnection及其他Connection 本文链接:https://blog.csdn.net/comprel/article/details/94661147 ...
- MSQL 数据完整性(约束)
0. 前言 1. 实体完整性 1.1 主键约束(primary key) 1.2 唯一约束(unique) 1.3 自动增长列(auto_increment) 2. 域完整性 数据类型 非空约束 默认 ...
- QByteArray使用方法大全
QByteArray 在Qt中QByteArray可以看做是c语言中 char*的升级版本.我们在使用这种类型的时候可通过这个类的构造函数申请一块动态内存,用于存储我们需要处理的字符串数据. 下面给大 ...
- 深入解读Redis分布式锁
之前码甲哥写了两篇有关线程安全的文章: 你管这叫线程安全? .NET八股文:线程同步技术解读 分布式锁是"线程同步"的延续 最近首度应用"分布式锁",现在想想, ...
- Bind DNS服务——转发与区域记录更新
Linux基础服务--Bind DNS服务 Part4 转发与区域记录更新 一个DNS服务器不可能保存所有的区域记录,所以我们一般都会将其他的区域纪录转发到其他的服务器上进行解析. Bind9提供了全 ...
- 【VBA】日期时间
当前日期: Sub 测试() Debug.Print Date End Sub 当前时间: Sub 测试() Debug.Print Date End Sub 几月: Sub 测试() Debug.P ...
- Django(67)drf搜索过滤和排序过滤
前言 当我们需要对后台的数据进行过滤的时候,drf有两种,搜索过滤和排序过滤. 搜索过滤:比如我们想返回sex=1的,那么我们就可以从所有数据中进行筛选 排序过滤:比如我们想对价格进行升序排列,就可以 ...