函数名,函数体,返回值,参数

1. 函数
 def 函数名(): #函数名与变量相同
  函数体

(1) 函数返回值: return
 1. 遇到return,结束函数 

 def list_a():
  print(123)
  print(456)
  return
  print(798)
  print(abc) 
 list_a()
 #输出结果
 123
 456
 
(2) 给函数的调用者返回值:
 s1 = '123325436456'

 def my_len(): #函数定义()放的是形式参数
  count = 1
  for i in s1:
   count += 1
  return count
 ss = my_len() #<---第一步先执行 #函数的执行()实际参数,实参
 print(ss) #返回值给print 打印count
 
 
 13  <----这就是返回值
 
 无return 返回None
 return 不写 或者None 返回None
 return 单个数据,后面写什么 返回什么(int)
 return 多个数据,返回元祖(tuple)
 
 还可以分别赋值
 def my_len():
  count = 1
  for i in s1:
   count += 1
  return 666,222,count
 off1,off2,off3 = my_len()
 print(off1)
 print(off2)
 print(off3)
 
 s1 = '123325436456'
 a = [1,2,3,4,5,'老男孩']
 b = 'adsfasfsadfgd'

 def my_len(ff):
  count = 1
  for i in ff:
   count += 1
  return count
 ret = my_len(a)
 oo = my_len(b)
 kk = my_len(s1)
 print(ret)
 print(oo)
 print(kk)
 #输出结果
 7
 14
 13
 传参方向:
 从实参角度
 (1)位置参数 #必须一一对应,按顺序
 def funcl(x,y):
    print(x,7)
 funcl(1,2)
 输出结果
 1 2
 (2)关键字参数 #必须一一对应,不分顺序
 def funcl(x,y,z):
  print(x,y,z)
 funcl(y=2,x=3,z=5)
 输出结果
 3 2 5
 小练习:传参2个数,比较大小,打印大的数
 def l_n(x,y):
    if x > y:
        print(x)
 l_n(6,5)
 或者
 def l_n(a,b):
 return a if a > b else b
 print(l_n(3,2))
 
 (3)混合参数(有位置还有关键字参数)----关键字参数必须在位置参数的后面
 def fa2(a1,a2,a3):
    print(a1)
    print(a2)
    print(a3)
 a2(1,2,a3=4)
 
 从形参角度
 (1)位置参数 #必须一一对应,按顺序
 def funcl(x,y):
    print(x,7)
 funcl(1,2)
 
 (2)默认参数#
 def register(name,sex='男'): #sex 默认是男
  with open('register',encoding='utf-8',mode='a') as f:
   f.write('{} {} '.format(name,sex))
 while True:  
  username = input('请输入姓名: /q 退出')
  if username.upper() == 'Q':break
  sex = input('请输入性别: ')   #全是男的 就可以默认参数
  register(username,sex)
 
 (3)动态参数 *args , **kwargs 万能参数 # 函数的定义 * 聚合。
 def func2(*args,**kwargs):
  print(args) #元祖(所有位置参数)
  print(kwargs) #字典
 func2(1,2,3,4,5,6,7,11,'alex','老男孩',a='ww',b='qq',c='222')
 
 def func3(a,b,sex='男',*args)
  print(a)
  print(b)
  print(sex)
  print(args)
 func3(1,2,'老男孩','alex','wusir') #顺序,位置参数,*args,默认参数 **kwargs
 

 def funcl(*args,**kwargs):
  print(args)
  print(kwargs)
 ll = [1,2,3,4]
 lll = (1,2,3,4)
 12 = ['alex','wusir',4]
 funcl(*ll,*12,*lll) # 函数的执行: *打散功能

 (1, 2, 3, 4, 'alex', 'wusir', 4, 1, 2, 3, 4)
 {}

 def funcl(*args, **kwargs): #函数的聚合
  print(args)
  print(kwargs)

 dic1 = {'name1':'liyun'}
 dic2 = {'name2':'laowang'}
 funcl(**dic1,**dic2) #函数的打散

原文地址:https://www.cnblogs.com/liwei-python-21/p/8895010.html