Python学习笔记 | 函数

本文详细介绍了Python中的函数,包括内置函数、如何定义函数、参数类型(位置参数、关键参数、默认参数、不定长参数)、返回值、变量范围及函数的嵌套。重点阐述了自定义函数的定义方法、调用方式,特别是参数的灵活使用和返回多个值的机制,旨在帮助读者深入掌握Python函数的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于Python3版本的学习。

函数(Function)

函数是组织好的、可以重复使用的、用来实现单一功能的代码。
在Python中,给函数输入数据,它就能执行相应的功能,最终输出你想要的结果。

内置函数

Python本身自带的函数叫内置函数 ,提供了许多我们常用的基本功能。
常用的内置函数有:

打印函数:print()
输入函数:input()
返回对象(字符、列表、元组等)长度或项目个数的函数:len()
返回对象类型的函数:type()
浮点数转换函数:float()
整型转换函数:int()
字符串转换函数:str()

每个函数后面都带有一个英文括号,括号里放的东西,也就是我们需要输入给函数的数据,它在函数中被称作参数 。参数指向的是函数要接收、处理怎样的数据(你也可以把它理解成自变量)。

定义函数

除了Python自带的内置函数,还可以自行定义函数并调用。

定义函数的语法:

def 函数名(参数):
	函数体
	return语句

具体代码:

def math(x):
    y = 3x + 5
    return y

第1行:def 的意思是定义(define),math是函数名 (自己取的),再搭配一个英文括号和冒号,括号里面的x是参数(参数名也是自己取)。
第2行: def下一行开始缩进的代码就是函数要实现的功能,也叫函数体 。这里的功能就是:根据x计算出一个值y。
第3行: return语句是返回的意思,可以指定函数执行完毕后最终会返回什么值或表达式,否则计算机是无法判断出函数最终要输出什么结果的。

定义函数语法注意事项:

函数名:
1.名字最好能体现函数的功能,一般用小写字母和单下划线、数字等组合
2.不可与内置函数重名(内置函数不需要定义即可直接使用)

参数: 根据函数功能,括号里可以有多个参数,也可以不带参数,命名规则与函数名相同
规范: 括号是英文括号,后面的冒号不能丢

函数体: 函数的执行过程,体现函数功能的语句,要缩进,一般是四个空格

return语句: 后面可以接多种数据类型,如果函数不需要返回值的话,可以省略


函数的调用

位置参数

函数调用时可以用如下方式调用:

#函数的定义
def add(a,b):
	x = a+b
	return x

#函数的调用	
y = add(2,3)    # y 用于接收返回值的变量

在调用时使用的参数被称为实参

其中,a,b被成为伪参数 ,2,3被成为实参数

从原则上说引入和定义时所指定的参数个数的数量要一样,当有多个参数的时候,我们就必须按照顺序和数量传递。

如果调用时函数不具备参数,调用方式如下:

def getHello():
	return 'Hello'

s = getHello()

调用时即便是没有参数,我们在调用函数的时候也不能省略括号。

关键参数

可以通过使用伪参数的名字来指定其对应的实参。

def subtract(a,b):
	x = a-b
	return x
	
y = subtract(b=3,a=7)

实参的顺序不需要与伪参数一致。

默认参数

可以给参数规定一个默认值的函数,指定了默认值的函数在被调用时,参数可以省略。

def multiply(n,t=2): # 规定默认参数 t ,设置默认值为 2
	x = n*t
	return x

a = multiply(5)    #可以省略第二个参数

默认参数可以从右侧的参数开始设置多个,但是不可以将中间的某个参数作为默认值。
即:

# 正确方法
def func(a,b=1,c=0):
...

# 错误方法
def func(a,b=1,c):
...
不定长参数

如果传递给参数的数量是可选的、不确定的,可以使用一个星号 * 加上 参数名 调用函数。

def avg(*args):
	sum = 0
	for n in args:
		sum += n
	return sum/len(args)

如果在伪参数之前使用两个星号 ** 加上 参数名 调用函数,就可以将关键参数作为字典来接受。

def printDic(**args):
	for s,t in args.items():
	print(s,':',t)

printDic(a=20,b=30,c=50)	

#运行结果
a:20
b:30
c:50
返回多个值

函数,不仅可以支持输入多个参数,而且也可以同时输出多个值。

要返回多个值,只需将返回的值写在return语句后面,用英文逗号隔开即可。

return b, '函数返回值'

变量范围

局部变量: 在函数内部赋值的变量仅能在该函数内部使用(局部作用域)。
全局变量: 在所有函数之外赋值的变量,可以在程序的任何位置使用(全局作用域)。

解决“局部变量”和”全局变量“之间的矛盾,有几种方法可供参考:

第一种方法最取巧: 把局部变量都放在函数外,变成全局变量。
第二种方法: 使用全局变量声明语句 global语句 ,全局变量声明必须在赋值之前。

def egg():    
    global quantity  # 全局变量声明必须在赋值之前
    quantity = 108

egg()
print(quantity)

函数的嵌套

函数的嵌套,顾名思义就是定义函数中的函数。

def funcA():
	print('A')

def funcB():
	print('B')

def main():
	while True:
        num1 = int(input('请输入一个整数:'))
        if num1 == 0:
            funcA()
        else:
            funcB()
            break
            
main()

def语句后的代码块只是封装了函数的功能,如果没有被调用,那么def语句后面的代码永远不会被执行。

这里的调用语句是main(),所以会直接执行main()函数里的代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值