2025年python函数的定义和调用(python的函数定义和调用方法有哪些特点)

python函数的定义和调用(python的函数定义和调用方法有哪些特点)1 函数的理解和调用 函数是一段代码的表示 是一段具有特定功能的 可重用的语句组 一种功能的抽象 一般函数表达特定功能 由保留字 def 和 return 定义 python 解释器自带一些函数 称为 python 的标准函数 如 abs pow len 作用 降低编程难度和代码复用 y f x 函数定义时 所指的参数是一种占位符 如果不经过调用 不会被执行 参数是输入

大家好,我是讯享网,很高兴认识大家。



1. 函数的理解和调用

函数是一段代码的表示,是一段具有特定功能的,可重用的语句组,一种功能的抽象,一般函数表达特定功能,由保留字 def 和 return 定义

python 解释器自带一些函数,称为 python 的标准函数,如:abs(),pow(),len()

作用:降低编程难度和代码复用

 

讯享网
讯享网
 
讯享网

y=f(x)

函数定义时,所指的参数是一种占位符,如果不经过调用,不会被执行,参数是输入,函数体是处理,结果是输出(IPO)

2. 函数参数的传递

函数可以有参数,也可以没有,但必须保留括号

 
讯享网
 
讯享网
 
讯享网

函数调用时,参数可以按照位置或名称方式传递

 
讯享网

3. 函数的返回值

函数可以返回 0 或多个结果

return 保留字用来退出函数执行并传递返回值

函数可以有返回值,也可以没有,可以有 return,也可以没有

return 可以传递 0 个返回值,也可以传递任意多个返回值,此时多个值以元组类型返回

 
讯享网
 

4. 局部变量和全局变量

讯享网

规则 1:局部变量和全局变量是不同变量

局部变量是函数内部的占位符,与全局变量可能重名但不同

函数运算结束后,局部变量被释放

可以使用 global 保留字在函数内部对全局变量赋值或重新创建

 
讯享网

规则 2:局部变量为组合数据类型且未创建,等同于全局变量

 
讯享网

总结:

  1. 函数内变量无论是否与全局变量重名,若在函数内部创建,函数退出后变量被释放,如与全局变量重名,全局变量的值不变
  2. 全局变量可以不用 globle 声明,直接在函数内部使用
  3. 当需要在函数内部对全局变量赋值或重新创建时,使用保留字 global 在函数内部声明全局变量
  4. 对于组合数据类型,如列表类型,当组合数据类型采用引用方式使用,不采用 global 声明时,函数内可以通过方法或操作函数等方式改变全局变量

扩展(指针和引用):

  • 指针是保存内存地址的变量
  • 引用是某一变量的别名,用这个名字可以对变量进行操作
  • 区别:指针直接指向内存地址,说明对象已经生成,而引用只是别名,需要真实创建对象才能操作对象

5.lambda(匿名)函数

lambda 函数返回函数名作为结果

使用 lambda 保留字定义,函数名是返回结果

lambda 函数用于定义简单、能够在一行内表示的函数

 
讯享网

谨慎使用 lambda 函数

lambda 函数主要用于一些特定函数或方法的参数

lambda 函数有一些固定使用方式,建议逐步掌握

一般情况,建议使用 def 定义普通函数

6.map()函数

 

7. 实例七:七段代码管绘制

讯享网
 
讯享网

无论每段数码管是否被绘制出来,画笔都会走过每一段,根据紧凑形式判段数字是否符合绘制

扩展:

计算机硬件时钟,断电时间的准确性问题,主板上有纽扣电池,有必要时操作系统会从硬件时钟中读出时间放入内核给应用软件使用

7. 抽象和代码复用

抽象是一种代码定义,用来赋予代码含义,主要包括函数和对象两种方式

分别对应面向过程(过程式)和面向对象(对象式)编程思想

代码复用:把代码当成资源进行复用

代码资源化:程序代码是一种用来表达计算的“ 资源”

代码抽象化:使用函数等方法对代码赋予更高级别的定义

代码复用:同一份代码在需要时可以被重复使用

函数和对象是代码复用的两种主要形式

函数:将代码命名;在代码层面建立了初步抽象

对象:属性和方法;<a>.<b>和<a>.<b>()在函数之上再次组织进行抽象

8. 模块化设计:分而治之

通过函数或对象封装将程序划分为模块及模块之间的表达;具体包括主程序,子程序和子程序之间的关系;分而治之是一种分层抽象、体系化的设计思想;七段数码管绘制就是最好的体现

 

模块化设计以功能块为基本单位,一般有以下俩个基本要求:

紧耦合:两个部分之间交流很多,无法独立存在,尽可能合理划分功能块,功能块内部耦合紧密

松耦合:两个部分之间交流和少,可以独立存在,模块间关系尽可能简单,功能块之间耦合度低

模块内部紧耦合,模块之间松耦合

9. 函数递归

函数定义中调用函数自身的方式,例如 n!

n! = n(n-1)(n-2)….1 <=> n(n-1)!

函数在定义中调用自身的方式称为递归调用,简称递归。包含递归调用的函数称为递归函数。

两个关键特性:

递归链条:递归链条在函数中表达递归调用关系,所有递归链条均以一个或多个基例结尾

递归基例:是不需要再次递归的确定值或确定表达式。可能存在一个或多个基例,例如 0!= 1

递归的实现:函数+分支语句

讯享网

递归本身是一个函数,需要函数定义方式描述

函数内部,采用分支语句对输入参数进行判断

基例和链条,分别编写对应代码

 

递归不提高程序执行效率,每次函数调用时,函数参数独立存储,递归中各次函数相互没有影响

任何递归程序都可以通过堆栈或队列变成非递归程序(这是程序的高级应用)

10. 函数递归实例解析

将字符串 s 反转后输出

讯享网
 
讯享网
 

11.Python标准函数

3.13.0 Documentation Python文档

Python 提供 71 个标准函数,这些函数可以直接调用

A

B

C

D

E

abs()

*aiter()

all()

*anext()

any()

ascii()

bin()

bool()

*breakpoint()

*bytearray()

bytes()

*callable()

chr()

*classmethod()

*compile()

complex()

*delattr()

dict()

*dir()

divmod()

enumerate()

eval()


讯享网

exec()

F

H

L

M

N

filter()

float()

format()

*frozenset()

*hasattr()

hash()

*help()

hex()

len()

list()

*locals()

map()

max()

*memoryview()

min()

*next()

O

P

R

S

T

object()

oct()

open()

ord()

pow()

print()

*property()

range()

repr()

reversed()

round()

set()

*setattr()

*slice()

sorted()

*staticmethod()

str()

sum()

super()

tuple()

type()

V

Z

_

vars()

zip()

import()

12.PyInstaller 库

概述:

Pyinstaller 库是一个将 Python 源文件打包成可执行文件的第三方库,可用于多种操作系统,好处是不用配置环境

讯享网

PyInstaller Manual — PyInstaller 6.11.0 documentation 此库地址

 

之后的目录下会多出三个文件:pycache;build;dist 前两个可以放心删除,在 dist 中,可以看到与原文件名相同的 exe 文件,这个便是我们打包的文件

build 目录是 pyinstaller 储存临时文件的目录,可以删除。最终打包程序在 dist 内部的 xx 中。目录中的其他文件是 xx 执行所需的动态链接库。

扩展:动态链接使程序在运行时调用不属于其程序的代码,进而程序会十分简洁,Windows 提供大量动态链接库,一般以 dll 或 ocx 为扩展名

注意:文件路径不能出现空格和英文句号;源文件必须为 UTF-8 编码

程序打包:

参数

描述

-F,–onefile

在 dist 文件夹中只生成独立的打包文件,不依赖库文件

-D DIR–onedir

默认值,生成 dist 目录 –distpath

-i<.ico or .icns>

指定打包程序使用的图标(icon)文件

-h,–help

查看帮助

–clean

清理打包过程中的临时文件

-v,–version

查看 pyinstaller 版本

讯享网

对我的注意:不知道为什么,-D 在我这里总是错误,换成–distpath 就行了

在线生成 ico 文件:https://www.bitbug.net/

不过苹果是 icns 文件

 

13. 实例八:科赫雪花小包裹

分形几何:一种迭代的几何图形,广泛存在于自然界中

讯享网
 

14.作业

讯享网
 
讯享网
 
讯享网
 
讯享网
 

15.math 库

math库是Python标准库

讯享网

小讯
上一篇 2025-04-22 08:44
下一篇 2025-06-01 08:32

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/139496.html