函数初始:

  什么是函数?

    函数:是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段

    一个函数封装一个功能。

    1,减少重复代码。

    2,增加代码的可读性。
函数的结构

def my_len():      # def 关键词开头,空格之后接函数名称和圆括号(),最后还有一个":"。
    s = 'abcdefg'   # 函数体
    count = 0
    for i in s:
        count += 1


my_len()    #  调用函数

 def 函数名():
  函数体
  函数的返回值

函数人返回值:  return

return 有两个作用

1、结束整个函数

2、给函数的执行者(调用者)返回值

  return  单个值 ------>  单个值(数据类型不变)

  return 多个值 ----> 返回一个元组(多个值)

#函数定义
def mylen():
    """计算s1的长度"""
    s1 = "hello world"
    length = 0
    for i in s1:
        length = length+1
    return length     # 将length返回给 mylen()

#函数调用
str_len = mylen()
print('str_len : %s'%str_len)

1、不写return返回None,return后面不加返回值,也返回None

   第一个函数没写return,返回一个None

2、return可以返回一个值

  

#函数定义
def mylen():
    """计算s1的长度"""
    s1 = "hello world"
    length = 0
    for i in s1:
        length = length+1
    return length

#函数调用
str_len = mylen()
print('str_len : %s'%str_len)

 

3、return可以返回多个值,多个值以元组的形式返回,可以用多个值来接受

def sb():
    return 1, 2, 3, 4


reg = sb()
print(reg)  # 以元组的形式返回一个值  (1, 2, 3, 4)
a, b, c, d = reg  # 用 a,b,c,d 接收(1,2,3,4)
print(a, b, c, d)

函数的参数

def date(a, b):  # 函数的定义:形参,形式参数
    print(a, b)
    print('打开探探')
    print('附近的人')
    print('左滑一下')
    print('右滑一下')
    print('锁定目标,联系')
    print('相约...')


x = 2
y = 3       # 把x,y的值传给a,b。然后打印a,b
date(x, y)  # 函数的执行者:实参,实际的参数

实参分三种:

  1、位置实参  :    从左至右一一对应

  2、关键字实参 :  一一对应,顺序随便

  3、混合传参:   位置参数一定要在关键字参数前面

# 混合传参的例子
def date(meetplace, sex, positon, soft):
    print('打开手机')
    print('打开%s软件,搜索%s附近的%s' % (soft, positon, sex))
    print('左滑一下')
    print('右滑一下')
    print('锁定目标,联系')
    print('相约%s' % (meetplace))


date('酒吧', soft='微信', sex='girl', positon='深圳南山区')  
# '酒吧'  是位置参数,需要放在所有关键字参数的前面

形参也分三种:

  1、位置形参:    从左至右,一一对应

  2、默认形参:   放在位置参数后面

  3、万能形参:  接受实参角度所有的位置参数,关键字参数    (*args, **kwargs)

默认形参

def date(meetplace,positon,soft,sex='girl'):   # 默认形参要 sex=girl 在位置形参后面
    print('打开手机')
    print('打开%s软件,搜索%s附近的%s' % (soft, positon, sex))
    print('左滑一下')
    print('右滑一下')
    print('锁定目标,联系')
    print('相约%s' %(meetplace))
date('酒吧',soft='微信',positon='深圳南山区',sex='laddyboy')

默认形参的陷阱

def func1(a, l1=[], l=[]):
    l.append(a)
    return l


# print(func1(666))  # [666]
# print(func1(22))   # [666,22]   # 陷阱 传22打印的却是 [666,22]
print(func1(33, l=[], l1=[1]))  # [33]  实参传给默认形参时,实参可以是位置实参或者关键字实参

万能参数 :两个形参参数,接受我所有的位置参数,关键字参数 (*args , **kwargs)

def kw(*args, **kwargs):
     print(args)
     print(kwargs)


kw(1,2,3,4,5,6,'你好',sex='man',place='白石洲')

# 打印结果
# (1, 2, 3, 4, 5, 6, '你好')
# {'sex': 'man', 'place': '白石洲'}

 



 

三元运算

# 写一个函数,完成一个功能: 给函数传入两个数字对象,将较大的数字返回给函数的调用者。
def max1(a, b):
    return a if a > b else b    # if a>b 输出 a  else  b


ret = max1(100, 10)
print(ret)

 

posted on 2018-12-28 15:56  拾玥大熊  阅读(105)  评论(0编辑  收藏  举报