向Python函数传递参数的几种方法
2021/5/19 22:55:10
本文主要是介绍向Python函数传递参数的几种方法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
函数的参数
参数:配合函数内部代码运行必要的值
参数分为:
- 形参,形式参数,在函数定义阶段需要写明的变量名。
位置形参, 默认形参 , 普通收集形参 , 命名关键字形参 , 关键字收集形参
实参: 普通实参,关键字实参 - 实参,实际参数,函数调用阶段,真实参与代码运行的数值。
实参: 普通实参,关键字实参
遵循原则:
实参和形参要一一对应。
- 位置形参
示例一:
''' 函数star_arry(row,column)的功能是需要打印行M列的全‘0’矩阵。 行数和列数由调用者来设定。 ''' def star_arry(row , column): i = 0 while i<row: j = 0 while j <column: print("0",end=' ') j+=1 print() i+=1 star_arry(10,9)
上面这个例子中,行数和列数在我们调用函数时确定,传入两个数字按照位置对应row和column,在函数执行的时候,我们传入的两个实际的数字也就是实参,对应函数内部两个变量的名,相当于我们给函数内部两个变量row和column分别赋值。这种传参方式是实参与形参之间是按照位置严格对应的。
- 默认形参
在函数定义处,给形参赋一个默认值,如果函数调用时不传入新的值,函数按默认值运行。
示例二:
def star_arry(row=10 , column=10):#在此处 ... #此处代码与示例一相同 pass star_arry() star_arry(9,7) 示例一中如果不传入参数的话,程序报错,这个程序不传入参数,打印10行10列的全零矩阵 有传入数值的话,按传入数值来打印矩阵
- 普通形参 + 默认形参
函数的定义处
默认形参必须跟在普通形参的身后,顺序是一定的,顺序反掉的话会直接报错。
示例三
def star_arry(row , column=10): ... #此处代码与示例一相同 pass star_arry(8) star_arry(5,7) 此种情况下至少传入一个位置参数。
- 关键字实参
关键字实参是对具体的某个参数赋值,具体的顺序可以打。
示例四:
def star_arry(row,column,a,b,c):#函数定义处 ... #此处代码与示例一相同 pass star_arry(column=8,row=7,b = 4,a = 3,c= 1)#函数调用处
值得注意的是函数定义时,和函数调用时参数的位置可以互换,但是形参和实参要对应,不可增加也不可减少。
- 普通实参 + 关键字实参
示例五
def star_arry(row,a,b,c,column=10): ... #此处代码与示例一相同 pass star_arry(8,1,row=7,b = 4,c= 1)
注意:关键字实参必须跟在普通实参的身后,顺序是一定的
默认参数和关键字实参 在写法上一模一样
一个是在函数的定义处
一个是在函数的调用处
- 收集参数
收集参数:
*
- 普通收集参数: 专门用来收集多余的没人要的普通实参
def func(*args): code *args => arguments(参数)
在args这个参数的前面加上一个*表达普通收集参数,形成一个元组 基本使用
def func(a,b,c,*args): print(a,b,c) print(args) func(1,2,3,4,5,5,6,7,8) 在func这个函数调用的时候,1,2,3分别对应的位置形式参数4,5,5,6,7,8没对应的形式参数,被*args收集成为了一个元组。 #运行结果 1 2 3 (4, 5, 5, 6, 7, 8)
计算任意个数的累加和
def func(*args): total = 0 for i in args: total += i print(total) def func(*args): total = 0 for i in args: total += i print(total) func(-429,78,352,76,345,234,76,863,274) #运行结果: 1869
- 关键字收集参数 : 专门用来收集多余的没人要的关键字实参
def func(**kwargs): code1... **kwargs => keyword arguments
在kwargs参数的前面加上2个**表达关键字收集参数,形成一个字典
def func(a=1,b=2,c=3,**kwargs): print(a,b,c) print(kwargs) # {'f': 1, 'g': 2, 'j': 3} func(f=1,g=2,j=3,a=15,b=16,c=17) #运行结果 15 16 17 {'f': 1, 'g': 2, 'j': 3}
- 命名关键字参数
定义命名关键字参数的两种方式:
(1)def func(a,b,*,c) c是命名关键字 (2)def func(*args,c,**kwargs) c是命名关键字参数
在函数调用时,必须使用命名关键字参数来进行赋值
定义方式一
def func(a,b,*,d,c): print(a,b) print(d) print(c) func(1,2,d = 3,c=10)
定义方式二
def func(*args,c,**kwargs): print(args) print(c) print(kwargs) func(1,2,3,4,5,6,a=1,b=2,d=6,c=100) 运行结果 (1, 2, 3, 4, 5, 6) 100**加粗样式** {'a': 1, 'b': 2, 'd': 6}
关于* 和 ** 的使用方法
这篇关于向Python函数传递参数的几种方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-01Python编程基础知识
- 2024-11-01Python编程基础
- 2024-10-31Python基础入门:理解变量与数据类型
- 2024-10-30Python股票自动化交易资料详解与实战指南
- 2024-10-30Python入行:新手必读的Python编程入门指南
- 2024-10-30Python入行:初学者必备的编程指南
- 2024-10-30Python编程入门指南
- 2024-10-30Python量化交易学习:新手入门指南
- 2024-10-30Python股票自动化交易实战入门教程
- 2024-10-29Python股票自动化交易教程:新手入门指南