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. python文件处理(对比和筛选)

    #!/user/bin/python #!coding=utf-8 # -*- coding: utf-8 -*- # 2017-9-25 #author:jingwenshuai import sy ...

  2. Nginx限制访问速率和最大并发连接数模块--limit

    Nginx限制访问速率和最大并发连接数模块--limit Tengine版本采用http_limit_req_module进行限制 具体连接请参考 http://tengine.taobao.org/ ...

  3. 『动善时』JMeter基础 — 36、JMeter接口关联【正则表达式提取器】

    目录 1.正则表达式提取器介绍 2.正则表达式提取器界面详解 3.正则表达式提取器的使用 (1)测试计划内包含的元件 (2)请求一界面内容 (3)正则表达式提取器界面内容 (4)请求二界面内容 (5) ...

  4. npm ERR! Error: tunneling socket could not be established的解决问题

    一般是代理问题 可以通过在命令行运行下列命令解决: npm run server npm run webdriver-update

  5. Linux下Flash-LED的处理

    Linux下Flash-LED的处理 一些LED设备提供两种模式-torch和flash.在LED子系统中,LED类(参见Linux下的LED处理)和LED Flash类,分别支持这些模式.torch ...

  6. 使用JS获取两个时间差(JS写一个倒计时功能)

    <body onload="myFunction()"> <p id="demo"></p> <script> ...

  7. Hadoop 数据迁移用法详解

    数据迁移使用场景 冷热集群数据分类存储,详见上述描述. 集群数据整体搬迁.当公司的业务迅速的发展,导致当前的服务器数量资源出现临时紧张的时候,为了更高效的利用资源,会将原A机房数据整体迁移到B机房的, ...

  8. Python_Selenium之basepage 识别元素、浏览器操作、获取属性、鼠标事件、键盘事件、弹窗、切换frame、切换句柄等封装

    #coding=gbkimport osimport timefrom selenium import webdriverfrom selenium.webdriver.common.by impor ...

  9. 三、DNS子域授权

    前提:准备两台虚拟机:父域: www.tedu.cn(虚拟机A)子域:www.bj.tedu.cn(虚拟机B) 一.在两台虚拟机上安装域名解析软件 root@pc207 ~]# yum -y inst ...

  10. Docker开启安全的TLS远程连接

    目录 1.1 不安全的远程访问方式 1.1.1 编辑docker.service文件: 1.1.2 重新加载Docker配置生效 1.1.3 警告! 2.1 建立基于TLS数字签名的安全连接 1.1 ...