函数1

函数

# 函数是为了更便捷的处理同类型事务,封装功能一边后续使用

def  函数名(形参):
    函数体(代码块)
    return 返回值
函数名()   #这是调用
def yue():
    print('打开手机')
    print('打开陌陌')
    print('找个漂亮的小姐姐')
    print('约不约')
    print('走起')
    return     #当程序运行碰到return就结束函数
    print('这老铁真黑') 

a = yue()  # 调用(执行)   #谁调用返回值就给谁
print(a)

yue()        调用就是函数名加小括号
return       返回值
return       #没有返回内容就返回None
return       #返回一个值的时候就是本身,返回多个值就是元组
print(yue)   #函数的内存地址

函数返回值(return)

  不写 return ,默认返回None,

  写了 return不写返回值,返回None

  返回一个参数时 是 本身 self

  返回多个参数时 是 元组 tuple    ( ,, )

  程序运行到return时候,后面的代码不执行

参数:

传参: 调用时候实参传递给形参的过程  注意位置参数在前

位置参数                  func(a,b,c)
关键字参数(默认参数)     func(a=1,b=2)
混合参数                  func(a,b=2)
不定长参数(动态参数) func(1,2,3,*(4,5),**{6:7,8:9})       
def func(*args,**kwargs):
    print(args)  #(1, 2, 3, 7, 8)
    print(kwargs) #{'age': 18, 'name': 'zc'}

func(1,2,3,*[7,8],**{'age':18,'name':'zc'})
# func(1,2,3,c=4,d=5) #{'c': 4, 'd': 5}

三元运算  (三目):

   a    if     a>b    else     b

   结果 1  条件   结果2

排错方法:

  1, print(   )

  2, pycharm   debug

 

#位置参数>动态位置>默认>动态关键字参数
#命名(名称)空间    函数名的本质是内存地址 加()才是调用
python内置多种自带函数 但run代码开始时,先加载所有内置函数,这也就是第一行代码如果是print()也能执行的原因,最后执行文件自定义的函数
全局 命名空间  (全局作用域    python内置+全局)
局部 命名空间  (局部作用域    函数代码块内部)
a=10
def func():
    b=3
    print()
func()
print(globals())  #查看全局作用域里的变量和函数名
print(locals())   #查看局部作用于里的变量和函数名
加载        python内置>>>全局>>>函数体局部
查找(取值)   函数体局部 >>>全局>>>内置

global    可变数据类型在函数中可直接操作 不可变数据类型才需要global
nonlocal  改变最近的父级变量  变量不会被修改
nonlocal  改变最近的父级变量, 如果上级没有能够改变的就继续向上走,直到最外层函数就停止了.
函数: 将一个需求封装后调用,优点:除去重复代码.
函数的注释:
def f():
  '''
  '''
  return
print(  )
函数嵌套(非常重要)
    避免出现环形调用

 

posted @ 2018-10-31 19:44  追风zz  阅读(136)  评论(0编辑  收藏  举报