一.函数定义
首先函数主要有函数名、参数和返回值(个人感觉可以缺失一部分,比如无返回值)
定义格式如下:
def 函数名(行参(貌似不能缺少,因为一般运算都是传参进行运算)):
函数语句
return 返回值(无返回值可以省略)
函数语句仍然需要缩进四个空格
定义一个函数打印两个数的和,可以在函数里面解决,也可以返回一个值进行打印
def er(a,b):
return a+b
m=er(3,4)
print(m)
下面就是截图运行嘞,er的类型是函数类型
二.函数调用
1.使用位置函数调用函数
简单点来说就是按照顺序输入形参,比如定义一个函数计算两个数的差
def plus(a,b):
return a-b
a=int(input())
b=int(input())
c=plus(a,b)
print(c)
2.使用关键字调用函数
就是在调用函数的时候说明“关键字”=“实参”,具体例子如下,同样以两数之差为例,如果这样的话与顺序就没有关系了
def Plus(a,b):
return a-b
c=Plus(b=2,a=3)
print(c)
三.函数默认值
形参中设立默认值,若传参时没有传值,则自动调用默认值,比如下面函数
def pa(name,age=18):
print('我的名字是:',name)
print('年龄为:{}岁'.format(age))
pa('阿呆',20)
pa('阿毛')
四.可变参数
1.基于元组的可变参数
输入格式就是函数的形参部分加一个*即可
简单点就是说看起进来形参是个元组,可以囊括多个数据,以输入多个数的和为例
def sum(*number):
total=0.0
for number in numbers:
total+=number
return total
print(sum(100.0,20.0,30.0))
print(sum(1,2,3,4,5,6,5,7,8))
2.基于字典的可变参数
输入 格式就是函数的形参部分加两个*即可,以带格式输出信息为例
def pr(**into):
print('----个人信息-----')
for key,value in into.items():
print('{0}-{1}'.format(key,value))
pr(name='牛马',age='100',sex='雄')
pr(tname='大牛马',sage='101',sex='雌')
五.作用域
1.局部变量可以覆盖全局变量,但作用范围只在部分区域,在作用域内修改局部变量不会修改全局变量的值。
2.局部变量要升级为全局变量只用在局部变量前面调用global即可
六.函数类型
(这部分鄙人也不清楚,只知道以下两点)
1.一个函数可以作为另一个函数的返回值使用
2.一个函数可以作为另一个函数的参数使用
(具体的后续遇到再补充)
七.几个有趣的函数
1.过滤函数
这玩意儿就和名字一样,可以起到一个筛选的作用,比如说筛选出一组数据中大于一定数值的说有数值,但是调用这个函数的产物需要用列表来承接,例子如下
def f1(x):
return x>50
data1=[1,6,6,688,9,5,85,65,65,45,54,11,552,5,41]
a=filter(f1,data1)
b=list(a)
print(b)
2.映射函数(map())
简单而言就和数学概念里面的函数概念差不多,对一系列的数据就行同样的操作,大体操作与前面那个函数相同,以给一个容器的数据同时乘以2为例
def f1(x):
return x*2
data1=[1,6,6,688,9,5,85,65,65,45,54,11,552,5,41]
a=map(f1,data1)
b=list(a)
print(b)
3.lambda函数(匿名函数)
格式:lambda 参数列表:函数体
(这玩意返回结果不能用return函数)
以在书上看到的例题为例
def calc(opr):
if opr == '+':
return lambda a,b:(a+b)
else:
return lambda a,b:(a-b)
f1=calc('+')
f2=calc('-')
print("10+5={0}".format(f1(10,5)))
print('11-5={0}'.format(f2(11,5)))
这个笔记具体的还有好多不足,希望大家指正批评