您的位置:首页 > 编程语言 > Python开发

1.python基础学习__函数中的参数

2016-05-11 17:07 716 查看
本人有过c语言的学习经验,所以所有的学习过程都是参照C语言的一些规则来理解

在python中,无法避免地要使用函数,但是相比于c语言,python中对函数的参数定义更加灵活,我认为这也体现了python的强大,python中有以下几种函数参数:

一、位置参数

在python中,位置参数相当于C语言中的一般函数的参数定义,也就是说如果你定义的参数数量和顺序一旦确定,你在调用时必须传入相同数量的参数,参数的位置也必须相同,否则程序就会报错。例如,这以下是一个打印x的n次方的函数,其中,x和n的位置在定义的时候就已经确定,所以调用时必须同时传入这两个数,而且位置不能随意更改。

def power(x,n):
num = 1
for i in range(0,n):
num = num*x
return num
print power(3,3)
结果是27
二、默认参数

举个例子,如果我们平时对于求x的平方这个函数用的较多,但是对于其他用的少,就可以使用默认参数来定义函数,把参数n的默认值设为2,在调用函数的时候就可以只传入一个x的值,但是,在函数定义的时候,必须把默认函数的位置放到后面,否则程序将会报错,原因是默认参数是否会被传值不确定。还有一个原则就是把不需要经常改动的默认参数放在靠后的位置,原因是如果想要传入一个靠后位置的默认参数,就不必同时传入前面所有定义好的默认参数的值,否则必须显式地传入制定的默认参数,例如在以下了例子中,也可以用power(x
,n = 3)来显式地传值,结果同上面的例子,以下为默认参数的例子:

def power(x,n = 2):
num = 1
for i in range(0,n):
num = num*x
return num
print power(3)
结果是9

三、可变参数

可变参数体现了python的灵活性,意思就是在传入参数的时候,参数的数量可以变化,例如,想要定义一个函数,目的是求若干个数的和,在C语言中,必须要明确参数的个数,所以问题就有点复杂,但是,在python中,可以利用可变参数来实现,例子如下:

def add(*nums):
sum = 0;
for num in nums:
sum += num;
return sum;
print add(1,2,4,5)


在传入参数时,函数把传入的值组装成了一个元组,从而计算和。

如果事先有一个列表,可以有两种方法传入参数,第一种是使用列表名和下角标传入每一个值,第二种是在传值的时候在列表名前加一个 * ,可以直接传入所有的值,例子如下:

number = [1,2,4,5]
def add(*nums):
sum = 0;
for num in nums:
sum += num;
return sum;
print add(*number)
结果同上

四、关键字参数

关键字参数的意思就是,在调用参数时,可以传入带有含有参数名的参数,当你事先不确定某些功能以后是否会被扩展时,你可以在定义函数的时候设置一个关键字参数,当以后需要用到某些功能时,可以直接以      参数名 = ‘XXX’ 的形式传入,此时,在函数内部就会起dict 的形式  {参数名:XXX} 被组装。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: