Python——函数的参数

函数的参数

在定义函数时,参数表中的参数称为形式参数,也称形参

调用函数时,参数表中提供的参数称为实际参数,也称实参

Python中的变量保存的是对象的引用,调用函数的过程就是将实参传递给形参的过程。

函数调用时,实参可以分为位置参数赋值参数两种情况

1 位置参数

函数调用时,默认情况下,实参将按照位置顺序传递给形参。

def getvolume(r,h):
	print("圆的体积是:{:>8.2f}".format(3.14*r*r*h))

2 赋值参数

通常情况下,函数调用时,实参默认采用按照位置顺序的方式传递函数。如果参数很多,按位置传递参数的方式可读性较差。

如果只看实际调用而不看函数定义,则很难理解这些参数的实际含义。在规模较大的程序中,函数定义可能在函数库中,也可能与调用函数相距甚远,因而可读性较差。

为了解决上述问题, Python 提供了按照形参名称输人实参的方式,这种参数称为赋值参数。

例 1 使用赋值参数计算总分 :

>>> def getscore (pe,eng,math,phy,chem):
	return pe *0.5+ eng *1+ math *1.2+ phy *1+ chem *1

>>> getscore (93,89,78,89,72) #按位置传递
390.1
>>> getscore ( pe =93, math =78, chem =72, eng =89, phy =89)#使用赋值参数390.
390.1

3 参数值的类型

参数值的类型是指函数调用时,传递的实际参数是基本数据类型还是组合数据类型。参数类型不同,在函数调用后,参数值的变化也是不同的。

例 2 基本数据类型作为实参进行参数传递:

>>> a = 10	#全局变量
>>> def func(num):
	num += 1
	print("形参的地址{}".format(id(num)))
	print("形参的值{}".format(num))
	a = 1	#局部变量吗,只在函数内部有效

>>> func(a)
形参的地址140710772266336
形参的值11
>>> a,id(a)	#函数调用后,变量a的值不发生变化
(10, 140710772266304)

如果想在函数中修改实参 a 的值,需要使用关键字 global 声明。

列表、元组、字典等组合数据类型的变量用作函数参数时,这些变量在函数体外,是全局变量。形参和实参之间传递的只是组合数据类型变量的地址(引用),如果在函数内部修改了参数的值,参数的地址是不发生改变的,这种修改将影响到外部的全局变量。

例 3 组合数据类型作为实参进行参数传递:

#计算序列中的奇数,保存到参数ls1中
>>> tup=()
>>> tup=(1,5,7,8,12,9)
>>> ls=[]
>>> def getodd(tup1,ls1):	#参数为组合数据类型
	for i in tup1:
		if i%2:
			ls1.append(i)
	return ls1

>>> getodd(tup,ls)	#函数调用前后, ls的值发生了变化,但 id 值不变
[1, 5, 7, 9]
>>> print(ls)
[1, 5, 7, 9]
基于Python的计算思维训练主要涉及到函数的概念。函数Python的基本编程结构,通过函数可以将一系列操作封装起来,提高代码的复用性和可维护性。 首先,函数的定义和调用是计算思维重要的一部分。学习者需要理解如何使用def关键字定义函数,并且学会传入参数和返回数值。这能够帮助他们将复杂的问题拆分成更小的部分,然后再分别解决。 其次,函数参数和返回值的运用是培养计算思维的有效途径。学习者需要理解函数参数可以是任意类型的数据,也可以是默认值,还可以是可变数量的参数。同时,他们需要掌握函数可以返回单个数值、多个数值或者其他函数的能力。 此外,函数的嵌套和递归是培养计算思维的重要方法。学习者需要了解函数可以在其内部调用其他函数,从而实现更复杂的功能。而递归则可以帮助他们理解问题的分治和循环求解策略。 最后,函数的高阶用法和闭包也是培养计算思维的关键。学习者需要明白函数可以作为参数传递给其他函数,也可以作为返回值被另一个函数使用。此外,他们还需要掌握闭包的概念和运用,以便更好地理解函数的作用域和生命周期。 通过学习和实践以上内容,学习者不仅可以掌握Python函数的用法,还可以培养出较强的计算思维能力,从而更好地应对复杂的问题和挑战。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值