函数就是方法,类似于生活当中的模板
1.函数的定义方法:
define:定义
def + 方法名字+(形参)
def test():
pass
test()
2.函数的几种形式
①:无参数无返回值
def test():
print('这是我的地盘')
test()
②:无参数有返回值
def test():
fond='学习Python使我快乐'
return fond
t = test()
print(t)
③:有参数无返回值
def test(name):
print('我的名字'+name)
test('学习Python')
④:有参数有返回值
def test(a,b):
return a+b
print(test(5,6))
⑤:有多参有返回值
def test(a,b,c,d,f,e):
print(a)
print(e)
test('z',1,[1,2,3,4],{'name':'小陈'},(123),True)
⑥:默认参数
def test(a,b=20):
print('{},{}'.format(a,b))
test(10)
⑦:关键参数
def test(b,a=10):
print('{},{}'.format(b,a))
test(10,a=20)
⑧:*args参数:能够将多余的参数放入自己的内部 *:表示指针
def test(a,*args):
print(a)
print(args)
test(1,2,3,1,0,12,5,65,2,41)
⑨:局部变量 :在局部声明的变量即为局部变量(在方法的内部声明的变量全部是局部变量)
局部变量的范围:即为声明变量的方法,出了这个方法的范围就不能再使用
def test():
result = 1+2+3+4+5+6+7
return result
print('输出的结果为{}'.format(test()))
⑩: 全局变量
name = '陈火华'
def test():
global name #使用全局变量
print(name)
name='小陈'
print(name)
test()
3.函数高级
space = '--------'
cont = 'hello world'
#join 方法用于对序列中的元素进行加工,加工的内容为使用join方法的对象的内容
print(space.join(cont))
def test(*args,sep=''):
result = sep.join(args)
print(result)
print('20','23',sep='!!!!!!')
def test(*args):
print(args)
#map :接收两个参数:参数一是函数,参数二是序列
#意义就是讲序列里面的每一个值都在前面的函数中进行处理并返回一个新的列表
#list:将元祖中的每一个元素转化为字符串放入list里面
args = list(map(test,args))
print(args)
test(1,2,3,4)
#reduce的用法
#首先引用一个reduce包
#reduce函数接收的参数和map一样
#参数一:函数 参数二:序列
#不同的是reduce 对序列里面的每一个元素反复调用函数并返回一个最终结果
from functools import reduce
def myreduce(x,y):
return x+y
print(reduce(myreduce,[1,2,3,4,5]))
#匿名函数 lamdba :后面只能写比较简单的逻辑
result = lamdba x,y:x+y
print(result(5,6)
list=[1,56,45,32,2,45,85,69,3,15]
list1=sorted(list,key=lamdba x:x)
print(list1)
list2=[{'name':'xiao','age':20},{'name':'da','age':23}]
list2 = sorted(list2 , key = lamdba x:x['age'])
print(list2)
4.异常处理:将有可能引起错误的代码放进try里面,如果出现错误,代码会根据错误类型进入到指定的except,这样做代码不会因为错误而中断执行 错误类型在博客常见的错误类型里有几种
try:
list=[1,2,3]
print(list[100])
dic = {'name':'xiaochen',
'age':20}
print(dic['fond'])
except KeyError as e:
print('捕获到一个Key值错误')
except IndexError as e:
print('捕获一个索引值错误')
try:
list=[1,2,3,5]
print(list[100])
#捕获任意错误:好处是不用遍历所有的错误类型
#缺点是:不知道什么错
except Exception as e:
print('捕获到一个错误')
try:
list=[1,3,3,5,7]
print(list[100])
except Exception as e:
print('捕获到一个错误')
else:
print('没有错误')
#finally:最终 不管有没有 一定会进来的代码块
finally:
print('程序结束')