当前位置: 首页 > ai >正文

2025-05-22 学习记录--Python-函数

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻

一、函数 ⭐️

(一)函数的定义 🍭

函数的定义: 💐

  • 使用关键字def
  • 确定函数名称、参数名称、参数个数、编写函数体(用于实现函数功能的代码)。
def func():print("python")

(二)函数的调用 🍭

函数的调用: 🐱

  • 通过函数名称进行调用函数;
  • 定义好函数之后,只表示这个函数封装了一段代码而已;
  • 如果不主动调用函数,函数是不会主动执行的。
# 解释器知道这里定义了一个函数
def say_hello():print("hello 1")print("hello 2")print("hello 3")
# 只有在调用函数时,之前定义的函数才会被执行
# 函数执行完成之后,会重新回到之前的程序中,继续执行后续的代码
say_hello()
print('主程序')

输出结果: 👇🏻

hello 1
hello 2
hello 3
主程序

(三)函数的参数 🍭

函数的参数: 📚

  • 形参: 就是函数定义时小括号里的参数,是用来接收参数用的,在函数内部 作为变量使用;
  • 实参: 函数调用的时候,小括号里的参数,是用来把数据传递到 函数内部 用的;
  • 函数可以没有形参和实参。
def sum_2_num(num1, num2): # 形参# 对两个数字的求和result = num1 + num2print("计算结果是 %d" % result)# 调用函数
sum_2_num(10, 20) # 实参

输出结果: 👇🏻

输出结果是 30

(四)函数的返回值 🍭

函数的返回值: 🦋

  • 返回值 是函数 完成工作后,最后 给调用者的 一个结果;
  • 在函数中使用 return 关键字可以返回结果;
  • 调用函数一方,可以 使用变量 来 接收 函数的返回结果。
def sum_2_num(num1, num2):# 对两个数字的求和return num1 + num2# 调用函数,并使用 result 变量接收计算结果
result = sum_2_num(10, 20)print("计算结果是 %d" % result)

输出结果: 👇🏻

计算结果是 30

(五)函数的参数类型 🍭

函数的参数类型: 🍉

  • 位置参数
    • 要求实参顺序必须和形参顺序完全一致,由形参顺序决定实参顺序。
  • 缺省参数
    • 定义函数时,可以给 某个参数 指定一个默认值,具有默认值的参数就叫做 缺省参数。
  • 可变参数
    • 传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。

举例1 🌰

def power(x, n = 2): # n: 默认参数,缺省参数# 计算x的n次方return x**na = power(4)
b = power(5,3)
print(a)
print(b)

输出结果: 👇🏻

16
125

举例2 🌰

def infos(name, age = 24, gender = '女'):return '大家好,我叫%s,我今年%d岁,我是一名%s生' % (name,age,gender)stu1 = infos('mia')
stu2 = infos('lily',25)
stu3 = infos('jack',gender='男')
print(stu1)
print(stu2)
print(stu3)

输出结果: 👇🏻

大家好,我叫mia,我今年24岁,我是一名女生
大家好,我叫lily,我今年25岁,我是一名女生
大家好,我叫jack,我今年24岁,我是一名男生

举例3 🌰

def total(*args): # 可变参数【其前加1个*】print(args) # tuple元组result = 0for i in args:result += ireturn resultresult = total(1,4,5,6,7,8,3)
print(result)a = [1,2,3,4,5]
result = total(*a)
print(result)

输出结果: 👇🏻

(1, 4, 5, 6, 7, 8, 3)
34
(1, 2, 3, 4, 5)
15

举例4 🌰

def f(**kwargs): # 可变参数,接收字典【其前加2个* [kw: keyword关键字(字典里的),args: arguments参数]】for k,v in kwargs.items():print(k,v)d = {'name':'xiaoming','age':18}
f(**d)

输出结果: 👇🏻

name xiaoming
age 18

(六)变量作用域 🍭

全局变量 & 局部变量: 🐰

  • 局部变量 是在 函数内部 定义的变量,只能在函数内部使用;
  • 全局变量 是在 函数外部定义 的变量,所有函数 内部 都可以使用这个变量。

举例1 🌰

# 定义一个全局变量
num = 10def demo1():num2 = 20 # 局部变量print(num2)def demo2():print(num)demo1()
demo2()
print("over")

输出结果: 👇🏻

20
10
over

举例2 🌰

# 全局变量
num1 = 10 # 不可变数据类型
list1 = [1,2,3,4,5] # 可变数据类型def f():global num1 # 声明在f中使用的num1是全局变量num1num2 = 20 # 局部变量num1 = 20list1[2] = 8print('在函数f中打印num1的值', num1)print('在函数f中打印list1的值', list1)print('num2的值',num2)f()
# print('在函数f外打印变量num2的值',num2) # 局部变量不能在函数外使用
print('在函数f执行后打印num1的值',num1)
print('在函数f执行后打印list1的值',list1)

输出结果: 👇🏻

在函数f中打印num1的值 20
在函数f中打印list1的值 [1, 2, 8, 4, 5]
num2的值 20
在函数f执行后打印num1的值 20
在函数f执行后打印list1的值 [1, 2, 8, 4, 5]

(七)匿名函数 🍭

匿名函数: 🍑

  • lambda 函数是一种快速定义单行的最小函数,可以用在任何需要函数的地方。
  • 优点:让代码更加精简,不需要考虑命名的问题。
# 常规函数
def fun(x,y):return x + y# 匿名函数
a = lambda x,y:x + y
print(fun(2,3))

输出结果: 👇🏻

5

在这里插入图片描述

http://www.xdnf.cn/news/8172.html

相关文章:

  • 使用docker compose部署dify(大模型开发使用平台)
  • DV通配符和OV通配符区别?如何选择?
  • hicFindTADs生成的domains.bed文件解析
  • Android --- CopyOnWriteArrayList 的使用场景及讲解
  • 技术篇-2.5.Matlab应用场景及开发工具安装
  • DDR5和LPDDR5的CA采样时刻对比,含DDR5的1N/2N模式
  • JDK8中的 Stream流式编程用法优化(工具类在文章最后)
  • ollama接口配合chrome插件实现商品标题和描述生成
  • CLIP阅读笔记
  • 亚远景-ASPICE评估中的常见挑战及应对策略
  • 云蝠智能大模型:深度赋能的智能化功能,是怎么做到的?
  • 深入对比分析 Python 中字典和集合 异同
  • 高等数学-曲线积分与曲面积分
  • SpringBoot 对象转换 MapStruct
  • 《函数指针数组:创建与使用指南》
  • 【T2I】Controllable Generation with Text-to-ImageDiffusion Models: A Survey
  • 嵌入式学习笔记 D25 :标准i/o操作(2)、文件i/o
  • 2025年5月通信科技领域周报(5.12-5.18):6G太赫兹技术商用突破 空天地一体化网络进入规模部署期
  • Windows解除占用(解除文件占用、解除目录占用)查看文件进程(查看父进程、查看子进程、查看父子进程)占用文件占用、占用目录占用
  • 纳斯达克与标普500的技术博弈:解析美股交易系统的低延迟与高安全解决方案
  • 基于SpringBoot的动漫交流与推荐平台-036
  • 【学习笔记】计算机操作系统(五)—— 虚拟存储器
  • 数据库5——审计及触发器
  • 模拟地和数字地的连接方式
  • Java中的大根堆与小根堆
  • 无人机避障——深蓝学院浙大Ego-Planner规划部分
  • 工具看点 | 澳鹏多模态标注工具:构建AI认知的语义桥梁
  • 第四十五节:目标检测与跟踪-Meanshift/Camshift 算法
  • MCP Server Resource 开发学习文档
  • 记一次奇葩的错误,uniapp @tap点击失效