pass的作用:
pass语句表示一个空的语句块,仅作为占位,执行后没有任何效果
用于待开发的代码
编写函数的原则
a.函数设计尽量短小
b.函数声明要做到合理、简单、易懂
c.函数设计要考虑向下兼容
d.一个函数只做一件事,尽量保证函数语句粒度的一致性
函数调用参数的传递方式是值传递还是引用传递?
python参数传递采用的是“传对象引用”的方式。这种方式相当于传值和传引用的一种综合。
如果函数传递的是可变对象(比如字典、列表)的引用,是可以修改原对象的原始值---相当于通过“传引用”来传递对象;
如果函数传递的是不可变对象(比如字符串,数字和元组)的引用,就不能修改原对象的值--相当于通过“传值”来传递对象
如何在function里面设置全局变量
global 设置全局变量
函数的传递参数的方式
调用函数是可使用的参数类型
必备参数
关键字参数
默认参数
不定长参数
必备参数:必备参数必须以正确的顺序传入函数,调用时的数量必须和声明时参数的数量一致
def printstr(s):
return s
print(printstr("I love python"))
关键字参数:函数调用使用关键字参数来确定传入的参数值
关键字参数与位置无关
def func(a,b,c):
return a+b+c
print(func(1,c=5,b=2))
默认参数:调用函数时,默认参数的值如果没有传入,则被认为是默认值
默认参数必须指向不可变参数
def printinfo(name,age =15):
print("name:",name)
print("age:",age)
return
print(printinfo("wulaoshi"))
print(printinfo("wulaoshi",30))
不定长参数也叫缺省参数
缺省参数:*arg 函数在调用的时候自动组装成一个tuple
def f(*args):
for i in args:
print(i)
f(1,2,3,4,5)
缺省参数:**kw 函数在调用的时候自动组装成一个dict
def f(a,b,**kw):
print(type(kw))
for k,v in kw.items():
print(k,v)
f(1,2,c=3,d=4)
#总结:
*arg:表示把可变的多个参数,转换成一个元组
**kw:表示把可变的多个命令参数,转换成一个字典
#练习:请使用**kw的方式,把可变的所有参数算个乘积
def func(a,b,**kw):
result = a * b
for value in kw.values():
result *= value
return result
print(func(1,2,c=3,d=4,e=5))
#练习2:同时使用*arg和**kw算下字母的长度之和,注意所有参数均使用字符串,字符串都是字母
def Mylen(*arg,**kw):
result = 0
for i in arg:
result += len(i)
for value in kw.values():
result += len(value)
return result
print(Mylen("abc","cdef","w",w="234",q="1000"))