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

发布于:2025-05-23 ⋅ 阅读:(16) ⋅ 点赞:(0)

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

一、函数 ⭐️

(一)函数的定义 🍭

函数的定义: 💐

  • 使用关键字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 + num2
	print("计算结果是 %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**n

a = 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 = 0
    for i in args:
        result += i
    return result

result = 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 = 10

def 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是全局变量num1
    num2 = 20 # 局部变量
    num1 = 20
    list1[2] = 8
    print('在函数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

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到