当前位置:   article > 正文

python 函数的概述与基本用法总结_为什么python位置可变的位置形参要放在个数可变的关键字形参之前

为什么python位置可变的位置形参要放在个数可变的关键字形参之前
  1. # -*-coding:utf-8 -*-
  2. # @Time : 19:41
  3. # @Author: 黄荣津
  4. # @File : 37.函数的定义与调用.py
  5. # @Software: PyCharm
  6. def calc(a,b): #a,b称为形式参数
  7. c=a+b
  8. return c
  9. result=calc(10,20) #10,20成为实际参数
  10. print(result)
  11. res=calc(b=10,a=20) # =左侧的变量的名称称为关键字参数
  12. print(res)
  1. # -*-coding:utf-8 -*-
  2. # @Time : 19:57
  3. # @Author: 黄荣津
  4. # @File : 38.函数参数传递的内存分析.py
  5. # @Software: PyCharm
  6. def fun(arg1,arg2):
  7. print('arg1',arg1)
  8. print('arg2', arg2)
  9. arg1=100
  10. arg2.append(10)
  11. print('arg1', arg1)
  12. print('arg2', arg2)
  13. n1=11
  14. n2=[22,33,44]
  15. print(n1)
  16. print(n2)
  17. print('-------------')
  18. fun(n1,n2) #按位置顺序传参
  19. print(n1)
  20. print(n2)
  21. '''在函数的调用过程中,进行参数的转递
  22. 如果是不可变对象,在函数的修改不会影响实参的值,arg1的修改为100,不会影响n1的值
  23. 如果是可变对象,在函数体的修改会影响实参的值,arg2的修改,append(),会影响到n2的值
  24. '''
  25. '''函数参数定义-默认值参数'''
  26. def fun(a,b=10): #b称为默认值参数
  27. print(a,b)
  28. #函数的调用
  29. fun(100)
  30. fun(20,30) #30会把10覆盖掉
  1. # -*-coding:utf-8 -*-
  2. # @Time : 20:13
  3. # @Author: 黄荣津
  4. # @File : 39.函数的返回值.py
  5. # @Software: PyCharm
  6. def fun(num):
  7. odd=[] #存计数
  8. even=[] #存偶数
  9. for i in num:
  10. if i%2:
  11. odd.append(i)
  12. else:
  13. even.append(i)
  14. return odd,even
  15. #函数的调用
  16. lst=[10,29,34,23,44,53,55]
  17. print(fun(lst))
  18. '''
  19. 函数的返回值
  20. (1)如果函数没有返回值,return可以不用写
  21. (2)函数的返回值如果是一个,直接返回类型
  22. (3)函数的返回值如果是多个,返回的结果为元组
  23. '''
  24. def fun1():
  25. print('hello')
  26. fun1()
  27. def fun2():
  28. return 'hello'
  29. res=fun2()
  30. print(res)
  31. def fun3():
  32. return 'hello','world'
  33. print(fun3())
  1. # -*-coding:utf-8 -*-
  2. # @Time : 20:42
  3. # @Author: 黄荣津
  4. # @File : 40.函数参数形参个数可变.py
  5. # @Software: PyCharm
  6. def fun(*args): #函数定义时的 可变的位置参数只能是一个,返回是元组类型
  7. print(args)
  8. fun(10)
  9. fun(30,32)
  10. fun(2,6,4)
  11. def fun1(**args): #个数可变的关键字参数,返回是字典类型
  12. print(args)
  13. fun1(a=10)
  14. fun1(a=10,b=20,c=30)
  15. def fun2(*args1,**args2):
  16. pass
  17. '''
  18. 在一个函数的定义过程中,既有个数可变的关键字形参,也有个数可变的位置形参
  19. 要求:个数可变的位置形参要放在个数可变的关键字形参之前
  20. '''
  1. # -*-coding:utf-8 -*-
  2. # @Time : 20:57
  3. # @Author: 黄荣津
  4. # @File : 41.函数的参数总结.py
  5. # @Software: PyCharm
  6. def fun(a,b,c):
  7. print('a',a)
  8. print('b', b)
  9. print('c', c)
  10. #函数的调用
  11. fun(10,20,30)
  12. lst=[11,22,33]
  13. fun(*lst) #在函数调用时,将列表的每一个元素都转换为位置实参转入
  14. fun(a=100,b=200,c=300) #函数的调用
  15. dic={'a':111 , 'b':222,'c':333}
  16. fun(**dic) #在函数调用时,将字典中的键值对都转换为位置实参转入
  1. # -*-coding:utf-8 -*-
  2. # @Time : 20:35
  3. # @Author: 黄荣津
  4. # @File : 42.递归函数.py
  5. # @Software: PyCharm
  6. def fac(n):
  7. if n==1:
  8. return 1
  9. else:
  10. return n*fac(n-1)
  11. print(fac(6))
  12. def fib(n):
  13. if n==1:
  14. return 1
  15. elif n==2:
  16. return 1
  17. else:
  18. return fib(n-1)+fib(n-2)
  19. #斐波那契数列第六位上的数字
  20. print(fib(6))
  21. #输出这个数列的前6位上的数字之和
  22. sum=0
  23. for i in range(1,7):
  24. sum=sum+fib(i)
  25. print(sum)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/261488
推荐阅读
相关标签
  

闽ICP备14008679号