品牌型网站制作公司,新媒体广告代理加盟,广告制作培训,珠海做网站需要多少钱一、位置参数调用函数时根据函数定义的参数位置来传递参数#!/usr/bin/env python#codingutf-8defprint_hello(name, sex):sex_dict {1: u先生, 2: u女士}print hello %s %s, welcome to python world! %(name, sex_dict.get(sex, u先生))#两个参数的顺序必须一一对应#xff0…一、位置参数调用函数时根据函数定义的参数位置来传递参数#!/usr/bin/env python#codingutf-8defprint_hello(name, sex):sex_dict {1: u先生, 2: u女士}print hello %s %s, welcome to python world! %(name, sex_dict.get(sex, u先生))#两个参数的顺序必须一一对应且少一个参数都不可以#print_hello(tanggu, 1)二、关键字参数用于函数调用通过“键-值”形式加以指定。可以让函数更加清晰、容易使用同时也清除了参数的顺序要求#以下是用关键字参数正确调用函数的实例#print_hello(tanggu, sex1)#print_hello(1, nametanggu)#print_hello(nametanggu, sex1)#print_hello(sex1, nametanggu)#以下是错误的调用方式#print_hello(nametanggu, 1)#print_hello(sex1, tanggu)有关键字参数一定要放到参数的最后否则在执行代码时会报错。有位置参数时即普通参数位置参数必须在关键字参数的前面但关键字参数之间不存在先后顺序的三、默认参数用于定义函数为参数提供默认值调用函数时可传可不传该默认参数的值(注意所有位置参数必须出现在默认参数前包括函数定义和调用)#正确的默认参数定义方式-- 位置参数在前默认参数在后def print_hello(name, sex1):....#错误的定义方式def print_hello(sex1, name):....#调用时不传sex的值则使用默认值1#print_hello(tanggu)#调用时传入sex的值并指定为2#print_hello(tanggu, 2)四、可变参数定义函数时有时候我们不确定调用的时候会传递多少个参数(不传递也可以)。此时可用包裹(packing)位置参数或者包裹关键字参数来进行参数传递会显得非常方便。1、包裹位置传递def func(*args):....#func()#func(a)#func(a, b, c)我们传进的所有参数都会被args变量收集它会根据传递进参数的位置合并为一个元组(tuple),args是元组类型这就是包裹位置传递2、包裹关键字传递def func(**kargs):....#func(a1)#func(a1, b2, c3)kargs是一个字典(dict)收集所有关键字参数五、解包裹参数*和**也可以在函数调用的时候使用称为解包裹(unpacking)1、在传递元组时让元组的每一个元素对应的一个位置参数defprint_hello(name, sex):printname, sex#args (tanggu, 男)#print_hello(*args)#tanggu 男2、在传递词典字典时让词典的每个键值对作为一个关键字参数传递给函数defprint_hello(kargs):printkargs#kargs {name: tanggu, sex, u男}#print_hello(**kargs)#{name: tanggu, sex, u男}六、位置参数、默认参数、可变参数的混合使用基本原则是先位置参数默认参数包裹位置包裹关键字(定义和调用都应遵循)def func(name,age,sex1,*args,**kargs):pirnt name,age,sex,args,kargs#func(tanggu.23,2,music,sprot,class2)#tanggu 23 2 (music,sport) {class2}Python中的*args和**kwsrgs的区别先来看个例子