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

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

在这里插入图片描述

相关文章:

  • Normalized Blind Deconvolution论文阅读
  • 2025中青杯数学建模B题思路+模型+代码
  • Opencv---RotatedRect
  • 2025长三角数学建模ABC题赛题已出!速拿
  • 关于vue彻底删除node_modules文件夹
  • 手写Tomcat(一)
  • java接口自动化(四) - 企业级代码管理工具Git的应用
  • 黑马k8s(十二)
  • 【RocketMQ 生产者和消费者】- 生产者启动源码-上报生产者和消费者心跳信息到 broker(3)
  • 复盘20250522
  • LeetCode 76题「最小覆盖子串」
  • 从零基础到最佳实践:Vue.js 系列(8/10):《性能优化与最佳实践》
  • Spring AI 之提示词
  • 论文解读 | 《桑黄提取物对小鼠宫颈癌皮下移植瘤的抑制及机制研究》
  • 红黑树插入的旋转变色
  • 使用C语言实现字符串拷贝与程序编译全解析 ——从strcopy实现到程序内存布局,一文掌握核心知识
  • FPGA通信之VGA
  • 【结构体宏定义】C语言结构体与宏定义:传感器配置的巧妙结合
  • transformer网络
  • 全栈开发中主流 AI 编程辅助工具的实践与对比分析20250522
  • 网站整体营销方案/百度人工客服在线咨询电话
  • 百度西安研发中心/站长工具seo综合查询网
  • 个人做网站 优帮云/优化百度seo技术搜索引擎
  • 百捷网站建设工资/链接生成二维码
  • 上海网站制作工作室/常州网站seo
  • 和女人做的电影网站/资源猫