了解以下知识点:
1.函数写法
2.函数的调用方式
3.空函数
4.包含默认参数的函数
5.可变参数的函数
->1.函数写法
①通过def定义函数名,通过return返回结果,如果没有return,返回值为None。
as: def my_abs(x):
if x>=0:
return x
else:
return -x
②可以返回多个数据,其实内部将这多个数据转变成一个tuple进行返回
->2.函数的调用方式
①调用和函数体在一个.py中,直接使用 函数名(参数列表) 的方式
②调用和函数图不在一个.py中,此时有两种方式可以调用
as:此处我定义了一个名为my_abs的函数,并在hanshu.py中进行定义。在study.py中,调用my_abs函数
from hanshu import *
a = int(input('please input num:'))
print(my_abs(a)) ……输入为-5时输出结果为5
as:另一种方式为
import hanshu
a = int(input('please input num:'))
print(hanshu.my_abs(a)) ……输入为-5时输出结果为5
->3. 空函数:什么都不做的函数
as:if age>=18:
pass
->4.包含默认参数的函数
将默认参数放在参数列表的最右端
as: def pow(a,n=2)
注意:默认参数要防止默认值的修改
as:def add_end(L=[]):
L.append('END')
return L
调用print(add_end()) ……['END']
再上述的基础上,再调用print(add_end()) ……['END','END']
Python函数在定义的时候,默认参数L的值就被计算出来了,即[],因为默认参数L也是一个变量,它指向对象[],每次调用该函数,如果改变了L的内容,则下次调用时,默认参数的内容就变了,不再是函数定义时的[]了。
所以,定义默认参数要牢记一点:默认参数必须指向不变对象!
上述的程序可以修改成:
def add_end(L=None):
if L is None:
L = []
L.append('END')
return L
->5.可变参数的函数:解决list/tuple作为参数传入
①定义函数时可变参数前添加*,表示是可变的参数
②参数调用时在该实参前添加*
as:
def calc(*numbers):
sum=0
for n in numbers:
sum = sum+n
return sum
调用方式:
nums=[1,2,3]
print(calc(*nums))