函数——python的乐高积木
创建函数:
def MyFirstFuntion():
函数具体内容
调用函数:直接输入函数面名及参数。
代码:
>>> def MyFirstFnuncyion()
SyntaxError: invalid syntax
>>> def MyFirstFunction():
print("我爱你,QT”)
SyntaxError: EOL while scanning string literal
>>> def MyFirstFunction():
print("I love you,QT")
>>> MyFirstFunction()
I love you,QT
>>> def add(a,b):
return (a+b)
>>> print(add(1,4))
参数:形参和实参
>>> def add(a,b):
return (a+b)
>>> print(add(1,4))
>>>5
a,b 就是形参。1,4就是实参
函数文档 注意函数文档和知识的区别
代码:
>>> def MyFirstFunction(name):
"函数定义时候name就是一个形参"
#"函数定义时候name就是一个形参"
print("传递进来的"+name+"就是一个实参,因为TA是具体的参数值")
>>> MyFirstFunction("renruili")
传递进来的renruili就是一个实参,因为TA是具体的参数值
>>> MyFirstFunction._doc_
Traceback (most recent call last):
File "<pyshell#21>", line 1, in <module>
MyFirstFunction._doc_
AttributeError: 'function' object has no attribute '_doc_'
>>> MyFirstFunction.__doc__
'函数定义时候name就是一个形参'
关键字参数和默认参数,
关键字参数,一般情况下,参数的传递是按照形参和实参按照顺序以一对应的,一旦参数较多,就容易搞混,所以,这时候需要关键字参数来帮忙了。代码如下:
def MyFirstFunction(name,words):
print(name+"-->"+words)
>>> MyFirstFunction("rrnruili","dvs")
rrnruili-->dvs
>>> MyFirstFunction(words="renruili",name="dvs")
#这里的name ,words 就是关键字参数,不用在乎参数顺序。
dvs-->renruili
>>> def MyFirstFunction(name="renruili",words="dvs"):
#这里的name="renruili",words="dvs"就是默认参数,如果调用函数时候忘记输入参数,也不报错。调用时输入了参数,也不影响。
KeyboardInterrupt
>>> def MyFirstFunction(name="renruili",words="dvs"):
SyntaxError: unexpected indent
>>> def MyFirstFunction(name="renruili",words="dvs"):
print(name+"-->"+words)
>>> MyFirstFunction()
renruili-->dvs
>>> MyFirstFunction("dgbjkcs","fuig")
dgbjkcs-->fuig
>>>
收集参数
有时候,创建函数时候我们并不知道函数需要几个参数,这个时候,我们便可以用*params来表示形式参数。
代码如下:
>>> def test(*params):
print("参数的长度都是:",len(params));
print("第二个参数是:",params[1]);
>>> test("fjh","gjk","vjhbk")
参数的长度都是: 3
第二个参数是: gjk
需要注意的是:当形参不只是一个params时,后面还有其他参数,用上述代码,会出错,解决方法有两个,第一个用默认参数的方法,第二用关键字参数。将params后面的参数表示出来,就不会出错。