1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python学习之路---函数:定义def 调用 返回值return 参数说明 参数陷阱

python学习之路---函数:定义def 调用 返回值return 参数说明 参数陷阱

时间:2019-03-12 11:32:18

相关推荐

python学习之路---函数:定义def 调用 返回值return 参数说明 参数陷阱

#函数#可读性强,复用性强#函数定义:定义了之后,可以在任何需要的地方调用#格式: def 函数名(): 例子:def mylen():# 没有返回长度,只能单纯的打印# return 返回值的重要性 定义了一个函数,建议都带一个返回值,不然无法进行赋值#完整例子:def 函数名():# 函数体# return 返回值# #定义函数后,无返回值# s = '杰瑞你好啊'# def mylen():# n = 0# for i in s :# n += 1# print(n)# mylen()# len1 = mylen()# print(len1)## #定义函数后,有返回值# s = '杰瑞你好啊'# def mylen():# n = 0# for i in s :# n += 1# print(n)# return n## len1 = mylen()# print(len1)#返回值#返回值的三种情况# 没有返回值 ---当没有返回值的时候默认返回None# 不写return# 直接写return 不加值,结束一个函数的继续,即return后面的都不执行了# return None --- 不常用# 返回1个值# 可以返回任意一种数据类型# 只要返回就可以接受到# 如果在一个程序种有多个retrun,那么只执行第一个# 返回多个值# 多个返回值用多个变量接收,有多少返回值就用多少变量接收。# 用一个变量接受:得到的是一元组,元组为不可以变数据类型# 没有返回值# def test():# l = ['jerry','tom']# for i in l:# print(i)# #return# #retrun None# test()#返回一个值# def test():# l = ['jerry','tom']# a = {}# for i in l:# a.setdefault(i)# return a## test = test()# print(test)#返回多个值# def test():# l = ['jerry','tom']# a = {}# for i in l:# a.setdefault(i)# return a,l## test = test()# print(test)# 小知识点:传递参数# 定义一个函数并赋予参数# 没定义参数时,只能计算指定的变量名# 定义参数后,可以计算任意的值# 没定义参数# s = '你好啊'# def my_len():# i = 0# for k in s:# i+=1# return i## ret = my_len()# print(ret)#定义参数# s1 = '你好哈'# def my_len1(a): # 自定义参数只需要0个参数,接受参数,形式参数:形参# i = 0# for k in a: # a 必须和形参是一致的# i += 1# return i## ret1 = my_len1(s1) # 传递参数:传参,实际参数:实参# ret2 = my_len1('你是谁啊') # 传递参数# print(ret1,ret2)#参数的语法---写在括号内的值#参数# 没有参数# 定义函数和调用函数时括号里都不写内容# 有一个参数# 传什么就是什么# 有多个参数# 位置参数# 站在实参的角度上:# 按照位置传参# 按照关键字传参# 混着用也可以,但是必须先按照位置传参,再按照关键字传参,不能同时给一个变量传多个值#典型传输多个参数:典型的位置参数# def my_sum(a,b):# c = a + b# return c## ret = my_sum(1,2) # 位置传参# ret2 = my_sum(a=2,b=1) # 关键字传参# print(ret,ret2)# def classmate(name,sex='men'): # 默认参数 sex = 'men'# print('%s : %s'%(name,sex))## classmate('jerry')# classmate('jerry')# classmate('Amy','woman') # 若有参数,则修改默认参数# classmate('jerry')# 站再形参的角度上:# 位置参数:必须传,且不能多传以及少传# 默认参数:可以不传,如果不写则使用默认参数,若写了就用设置的参数替换默认参数# 只有调用函数的时候# 按照位置传:直接写参数的值# 按照关键字传: 关键字 = 值 如 open( file, encoding = 'utf-8')# 定义函数的时候:# 位置参数:直接定义参数# 默认参数: 关键字参数: 参数名 = ‘默认值’# 动态参数: 可以接受任意多个参数# 在定义参数的时候 前面加多个* 例子:def my_len(*aaaa)# 约定俗成 都是以 *args 为动态参数# 顺序:先定义位置参数,*args,再设置默认参数,最后**kwargs# 动态参数有两种# *args: 接收的是按照位置传参的值,组成一个元组# **kwargs:接收的是关键字传参的值,组曾一个字典# 按照位置传参# def classmate(*args): # 默认参数 sex = 'men'# n = 0# for i in args:# n += i# return n## print(classmate(1,2))# print(classmate(1,2,3))# print(classmate(1,2,3,4))# 按照关键字传参# def func(**kwargs):# print(kwargs)## func(a = 1,b=2,c=3)# func(b=2,c=3)# func(c=3)# 动态参数的另一种传参方式# def func(*args): # 站在形参的角度上,给变量加上*,就是组合所有传来的值# print(args)## func(1,2,3,4,5,6)# l = [2,1,3,6,5,2]# func(*l) # 站在实参的角度上,给一个序列加上*,就是将这个序列按照顺序打散# def func(**kwargs):# print(kwargs)# # func(a=1,b=2)# d = {'a':1,'b':2}# func(**d)#函数的注释def func():'''这个函数实现了什么功能参数1:参数2::return: '''pass#默认参数的陷阱#如果默认参数的的值是一个可变数据类型,那么每次调用函数时,如果不传值就公用这个 数据类型的资源def test(l= []):l.append(1)print(l)test()test()test()test([])test()def test1(dic = {}):dic['k'] = 'v'print(dic)test1()test1()test1()test1()def test1(k,dic = {}):dic[k] = 'v'print(dic)test1(1)test1(2)test1(3)test1(4)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。