Python基础—函数

文章介绍了Python中的函数概念,强调其用于代码复用和组织的功能。通过案例展示了如何使用函数减少代码冗余,并详细讲解了自定义函数的规则,包括函数的定义、调用、形参与实参的使用,以及默认值参数、位置参数、关键字参数和不定长参数的用法。此外,还提到了函数的类型说明,允许在定义时指定形参和返回值的数据类型。

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

函数

一、函数的概念:此函数非彼函数,python中的函数是组织好的、可重复利用的、用来实现单一功能或者相关联功能的代码块

二、函数的作用:函数能够提高代码的重复利用率(降低代码的冗余)

案例:计算1 — N的和

total = 0
for i in range(1, 101):   # 计算1 —— 100的和
	total = total + i
print(total)

total_1 = 0
for i in range(1, 1001):  # 计算1 —— 1000的和
	total_1 = total_1 + i
print(total_1)

运行结果:5050
         500500

使用函数的方法解决案例:

def numTotal(N):
	total = 0
	for i in range(1, N + 1):
		total = total + i
	return total

print(numTotal(100))    # 计算1 —— 100的和
print(numTotal(1000))   # 计算1 —— 1000的和

运行结果:5050
         500500

三、自定义函数(需要遵循以下规则)

1. 创建一个函数,要以def关键字开头,后接函数名称、圆括号()、参数(非必写项)、冒号

2. 函数内部的代码的第一行语句可以选择性的使用多行注释对函数的功能进行说明(非必写项)

3. 函数内部使用return将函数内产生的结果返回到函数外部。

4. 如果不使用return、函数的结果为None

5. 注意代码缩进

总结:函数内部和函数外部是两个互相独立的个体,如果想要使两者连通,必须使用return将函数内部的结果返回到函数外部,返回出来的结果就是这个函数产生的结果,只要函数内部触发了return,那么这个函数立即停止运行。

四、函数的调用

已经定义好的函数,并不会自动执行、需要单独调用这个已经存在的函数。

调用语法:函数名(实参)—— 实参和形参要相对应,形参不写,实参也不写。

五、形参的定义;实参的传递

①默认值参数

函数定义时,给设置的形参提前赋值,在定义函数时,将形参写为参数名 = 数据的形式。此时,这个形参便有了默认值,如果调用函数时没有给此形参赋值,那么这个形参便使用默认值;如果调用函数时给这个形参赋了值,那么这个形参便使用新的值

def numTotal(N = 100):
	total = 0
	for i in range(1, N + 1):
		total = total + 1
	return total

print(numTotal())
print(numTotal(10))

运行结果:5050
         55

②参数位置

在定义函数时,函数中参数要以什么样的顺序去定义,那么调用函数时就必须以什么样的顺序去传入实参。即:实参和形参位置要一一对应

def numTotal_1(start, end):
	# 计算start到end的和
	for i in range(start, end + 1):
		total = total + i
	return total

print(numTotal_1(1, 100))
print(numTotal_1(100, 1)) 

运行结果:5050
         0

③关键字参数

如果使用位置参数进行传参,实参和形参的位置要一一对应,那么如果不想按照顺序传参就要使用关键字参数

print(numTotal_1(start=1, end=100))
print(numTotal_1(end=100, start=1))

运行结果:5050
         5050

问:能不能位置参数、关键字参数同时使用

print(numTotal_1(1, end=100))

1. 位置参数必须写在关键字参数之前

2. 位置参数必须按照顺序写

3.关键字参数顺序随便写

④不定长参数

*args —— positional argument

**kwargs —— keyword argument

首先解释星号 * 的作用:一个星号 * 的作用是将tuple(元组)和list(列表)中的元素进行unpack,分开传入,作为多个参数;两个星号 ** 的作用是把dict(字典)类型的数据作为参数传入

kwargs是keyword argument的缩写,args就是argument。在Python中有两种参数,一种叫位置参数(positional argument),一种叫关键词参数(keyword argument),关键词参数只需要用 keyword = somekey 的方法即可传参,而位置参数只能由参数位置决定。这也就决定了位置参数一定要在前面,否则关键词参数数量的变化(比如有些kwargs有默认值因此没有传参或者在后面传参的),都会使得位置无法判断。因此常见的也是*args 在 **kwargs 前面。

def argument(a, b, c, *args, **kwargs):
	print(a, b, c)
	print(args)
	print(kwargs)

argument(1, 100, 200, 300, d=100, e=200, f=300)

运行结果:1 100 200
         (300,)
         {'d': 100, 'e': 200, 'f': 300}

六、函数的类型说明

函数在定义时,形参可以添加数据类型说明

1. 在定义函数时,可以使用 “冒号数据类型” 的形式对形参进行说明

2. 在定义函数时,还可以通过给形参定义初始值(默认值)的形式对此形参接收的值的类型进行说明

3. 还可以告诉其他人对函数的返回结果,使用 -> 数据类型说明

def func_1(num: int, string: str) -> str:
	"""
	这个函数是什么功能的函数
	"""

func_1()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

㤅uu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值