python之参数

2025-12-29 09:52:41

1、思考一个问题,如下:

现在需要定义一个函数,这个函数能够完成2个数的加法运算,并且把结果打印出来,该怎样设计?下面的代码可以吗?有什么缺陷吗?

In [8]: def num():

   ...:     a=12 

   ...:     b=23

   ...:     c=a+b

   ...:     print(c)

为了让一个函数更通用,即想让它计算哪两个数的和,就让它计算哪两个数的和,在定义函数的时候可以让函数接收数据,就解决了这个问题,这就是 函数的参数

python之参数

2、定义带有参数的函数

In [10]: def num1(a):

   ....:     print(a)

   ....:     In [11]: def num2(a,b):

   ....:     c=a+b

   ....:     print(c)

   ....:     In [12]: def num3(a,b,c):

   ....:     d=a+b+c

   ....:     print(d)

python之参数

3、调用带有参数的函数

In [13]: def num2(a,b):

   ....:     c=a+b

   ....:     print(c)

   ....:     

In [14]:

In [14]: num2(1,2)

3

python之参数

4、缺省参数

调用函数时,缺省参数的值如果没有传入,则被认为是默认值。

In [18]: def info(name,age=20):

   ....:     print("name:",name)

   ....:     print("age:",age)

   ....:     In [19]: info(name='zcf')

name: zcf

age: 20

In [20]: info(age=21,name='zcf')

name: zcf

age: 21

python之参数

5、缺省参数之注意:

带有默认值的参数一定要位于参数列表的最后面。

In [21]: def info(name,age=20,sex):

   ....:     print(name)

   ....:    

  File "<ipython-input-21-099520322ee2>", line 1

    def info(name,age=20,sex):

            ^

SyntaxError: non-default argument follows default argument

python之参数

6、不定长参数

有时可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,声明时不会命名。

语法:

def functionname([formal_args,] *args,**kwargs):

       function_suite

       return [expression]

加入星号(*)的变量args会存放所有未命名的变量参数,args为元组;

而加**的变量kwargs 会存放命名参数,即形如key=value的参数,kwargs为字典

python之参数

python之参数

python之参数

7、引用传参

可变类型与不可变类型的变量分别作为函数参数时,会有什么不同吗?

Python有没有类似C语言中的指针传参呢?

      Python中函数参数是引用传递(注意不是值传递)。对于不可变类型,因变量不能修改,所以运算不会影响到变量自身;而对于可变类型来说,函数体中的运算有可能会更改传入的参数变量。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢