聊聊pytho中的函数

2024-03-11 01:28
文章标签 函数 聊聊 pytho

本文主要是介绍聊聊pytho中的函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Python中的函数

一、Python中函数的作用与使用步骤

1、为什么需要函数

在Python实际开发中,我们使用函数的目的只有一个“让我们的代码可以被重复使用”

函数的作用有两个:

==① 代码重用(代码重复使用)==

==② 模块化编程(模块化编程的核心就是函数,一般是把一个系统分解为若干个功能,每个功能就是一个函数)==

在编程领域,编程可以分为两大类:① 模块化编程 ② 面向对象编程

2、什么是函数

所谓的函数就是一个==被命名的==、==独立的、完成特定功能的代码段(一段连续的代码)==,并可能给调用它的程序一个==返回值==。

被命名的:在Python中,函数大多数是有名函数(普通函数)。当然Python中也存在没有名字的函数叫做匿名函数。

独立的、完成特定功能的代码段:在实际项目开发中,定义函数前一定要先思考一下,这个函数是为了完成某个操作或某个功能而定义的。(函数的功能一定要专一)

返回值:很多函数在执行完毕后,会通过return关键字返回一个结果给调用它的位置。

3、函数的定义

基本语法:

def 函数名称([参数1, 参数2, ...]):函数体...[return 返回值]

4、函数的调用

在Python中,函数和变量一样,都是先定义后使用。

# 定义函数
def 函数名称([参数1, 参数2, ...]):函数体...[return 返回值]
​
# 调用函数
函数名称(参数1, 参数2, ...)

5、通过一个栗子引入函数

① 使用Python代码,编写一个打招呼程序

第一步:见到一个老师,打一声招呼
print('您好')
第二步:见到一个老师,打一声招呼
print('您好')
第二步:见到一个老师,打一声招呼
print('您好')

虽然以上程序可以满足程序的需求,但是我们发现,我们的代码做了很多重复性的工作。我们能不能对以上代码进行进一步的优化,避免代码的重复性编写。

② 升级:使用Python代码,编写一个打招呼程序(函数——一次编写,多次利用)

# 定义函数(封装函数)
def greet():print('您好')
​
# 调用函数
# 见到一个老师,打一声招呼
greet()
# 见到一个老师,打一声招呼
greet()
# 见到一个老师,打一声招呼
greet()

③ 升级:使用Python代码编写一个打招呼程序,可以实现向不同的人打不同的招呼

# 定义一个函数,同时为其定义一个参数
def greet(name):print(f'{name},您好')
​
# 调用函数
# 见到了张老师,打一声招呼
greet('老张')
# 见到了李老师,打一声招呼
greet('老李')
# 见到了王老师,打一声招呼
greet('老王')

④ 函数的设计原则“高内聚、低耦合”,函数执行完毕后,应该主动把数返回给调用处,而不应该都交由print()等函数直接输出。

# 定义一个函数,拥有name参数,同时函数执行完毕后,拥有一个return返回值
def greet(name):# 执行一系列相关操作return name + ',您好'
​
# 调用函数
# 见到了张老师,打一声招呼
print(greet('老张'))
# 见到了李老师,打一声招呼
print(greet('老李'))
# 见到了王老师,打一声招呼
print(greet('老王'))

6、聊聊return返回值

思考1:如果一个函数如些两个return (如下所示),程序如何执行?

def return_num():return 1return 2
​
​
result = return_num()
print(result)  # 1

答:只执行了第一个return,原因是因为return可以退出当前函数,导致return下方的代码不执行。

思考2:如果一个函数要有多个返回值,该如何书写代码?

答:在Python中,理论上一个函数只能返回一个结果。但是如果我们向让一个函数可以同时返回多个结果,我们可以使用return 元组的形式。

def return_num():return 1, 2
​
​
result = return_num()
print(result)
print(type(result))  # <class 'tuple'>

思考3:封装一个函数,参数有两个num1,num2,求两个数的四则运算结果

四则运算:加、减、乘、除

def size(num1, num2):jia = num1 + num2jian = num1 - num2cheng = num1 * num2chu = num1 / num2return jia, jian, cheng, chu
​
​
# 调用size方法
print(size(20, 5))

二、Python函数中的说明文档

1、什么是说明文档

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

答:注释

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

答:==函数的说明文档(函数的说明文档也叫函数的文档说明)==

2、定义函数的说明文档

① 定义函数的说明文档

# 1、定义一个menu菜单函数
def menu():pass
​
# 2、定义通讯录增加操作方法
def add_student():""" 函数的说明文档:add_student方法不需要传递任何参数,其功能就是实现对通讯录的增加操作 """pass
​
# 3、定义通讯录删除操作方法
def del_student():pass
​
# 4、定义通讯录修改操作方法
def modify_student():pass
​
# 5、定义通讯录查询操作方法
def find_student():pass

② 调用函数的说明文档

help(函数名称)

案例:调用add_student()方法

help(add_student)

3、封装一个函数,用于生成指定长度的验证码

# 定义一个generate_code()函数
def generate_code(num):""" generate_code方法主要用于生成指定长度的验证码,有一个num参数,需要传递一个int类型的数值,其return返回结果为num长度的随机验证码 """import random# 第一步:定义一个字符串str1 = "23456789abcdefghijkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"# 第二步:循环num次,代表生成num长度的字符串code = ''for i in range(num):# 第三步:从字符串中随机抽取num个字符index = random.randint(0, len(str1) - 1)code += str1[index]# 第四步:使用return返回验证码return code
​
# 求帮助(查看generate_code函数的作用以及需要传递的参数)
# help(generate_code)
​
# 调用函数
print(generate_code(6))

三、函数的嵌套

1、什么是函数的嵌套

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

2、函数嵌套的基本语法

嵌套函数的执行流程:

第一步:Python代码遵循一个“顺序原则”,从上往下,从左往右一行一行执行

当代码执行到第1行时,则在计算机内存中定义一个funcB函数。但是其内部的代码并没有真正的执行,跳过第2行继续向下运行。

第二步:执行到第5行,发现又声明了一个funcA的函数,根据函数的定义原则,定义就是在内存中声明有这样一个函数,但是没有真正的调用和执行。

第三步:代码继续向下执行,到第14行,发现funcA(),函数体()就代表调用funcA函数并执行其内部的代码。程序返回到第6行,然后一步一步向下执行,输出40个横杠,然后打印这是funcA函数的函数体部分...,然后继续向下执行,遇到funcB函数,后边有一个圆括号代表执行funcB函数,原程序处于等待状态。

第四步:进入funcB函数,执行输出这是funcB函数的函数体部分...,当代码完毕后,返回funcA函数中funcB()的位置,继续向下执行,打印40个横杠。

最终程序就执行结束了。

3、PyCharm调试小技巧

Step over(F8):代码一步一步向下执行,但是遇到了函数以后,不进入函数体内部,直接返回函数的最终的执行结果。

Step into(F7):代码一步一步向下执行,但是遇到了函数以后,进入到函数体内部,一步一步向下执行,直到函数体的代码全部执行完毕。

4、通过一个案例描述函数嵌套

百度百科,搜索Python语言词条

嵌套函数funcB和funcC

在funcA函数执行过程中,如果遇到了funcB则跳入funcB函数继续执行,当funcB执行完毕后,会自动返回funcA函数,继续向下运行,依次类推,直到funcA函数执行完毕。

这篇关于聊聊pytho中的函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/796156

相关文章

pandas使用apply函数给表格同时添加多列

《pandas使用apply函数给表格同时添加多列》本文介绍了利用Pandas的apply函数在DataFrame中同时添加多列,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习... 目录一、Pandas使用apply函数给表格同时添加多列二、应用示例一、Pandas使用apply函

Python中Namespace()函数详解

《Python中Namespace()函数详解》Namespace是argparse模块提供的一个类,用于创建命名空间对象,它允许通过点操作符访问数据,比字典更易读,在深度学习项目中常用于加载配置、命... 目录1. 为什么使用 Namespace?2. Namespace 的本质是什么?3. Namesp

MySQL中如何求平均值常见实例(AVG函数详解)

《MySQL中如何求平均值常见实例(AVG函数详解)》MySQLavg()是一个聚合函数,用于返回各种记录中表达式的平均值,:本文主要介绍MySQL中用AVG函数如何求平均值的相关资料,文中通过代... 目录前言一、基本语法二、示例讲解1. 计算全表平均分2. 计算某门课程的平均分(例如:Math)三、结合

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

Python中isinstance()函数原理解释及详细用法示例

《Python中isinstance()函数原理解释及详细用法示例》isinstance()是Python内置的一个非常有用的函数,用于检查一个对象是否属于指定的类型或类型元组中的某一个类型,它是Py... 目录python中isinstance()函数原理解释及详细用法指南一、isinstance()函数

python中的高阶函数示例详解

《python中的高阶函数示例详解》在Python中,高阶函数是指接受函数作为参数或返回函数作为结果的函数,下面:本文主要介绍python中高阶函数的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录1.定义2.map函数3.filter函数4.reduce函数5.sorted函数6.自定义高阶函数

Python中的sort方法、sorted函数与lambda表达式及用法详解

《Python中的sort方法、sorted函数与lambda表达式及用法详解》文章对比了Python中list.sort()与sorted()函数的区别,指出sort()原地排序返回None,sor... 目录1. sort()方法1.1 sort()方法1.2 基本语法和参数A. reverse参数B.

Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧

《Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧》本文将通过实际代码示例,深入讲解Python函数的基本用法、返回值特性、全局变量修改以及异常处理技巧,感兴趣的朋友跟随小编一起看看... 目录一、python函数定义与调用1.1 基本函数定义1.2 函数调用二、函数返回值详解2.1 有返

Python Excel 通用筛选函数的实现

《PythonExcel通用筛选函数的实现》本文主要介绍了PythonExcel通用筛选函数的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录案例目的示例数据假定数据来源是字典优化:通用CSV数据处理函数使用说明使用示例注意事项案例目的第一

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法