python3.5函数的解析形参、实参,非固定参数、变量

# Author Richard_Kong
# !/usr/bin/env python
# --*-- encoding:utf-8 --*--
"""
第三天的主要内容是 函数的解析
1、编程思想:面向对象 面向过程 函数式编程
2、为什么要使用函数式编程
3、函数的形参 实参 局部变量 返回值 嵌套函数
4、递归函数、匿名函数、高阶函数、内置函数
"""
"""
函数是指 将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需要调用执行这个函数名即可
使用函数编程的优点:
1、减少重复代码
2、使代码变的可扩展
3、使代码变得易维护
"""
"""
函数式编程和面向过程编程的区别:
函数必须包含返回值
而过程不包含返回值,面向过程就是不包含返回值的函数编程
但是在Python中默认会给过程编程返回None


return 一个对象 一个值 一个函数
1、当函数执行到return语句的时候,就会停止执行函数并返回执行结果,return代表函数的结束
2、如果未指定return 则函数返回值为None
为什么要有返回值
1、某些功能需要传递函数返回的参数,或者函数执行的结果
"""

# 函数的定义
def func1():
    print("function1")
    return "ok"

# 过程的定义
def progress():
    print("progress")

def func2():
    print("funct2")
    return func2 # 返回函数的内存地址
# 都可以调用函数名的方式执行
x = func1()
y = progress()
z = func2()

# 函数返回 return的参数
print("function return is %s "%x)
# 过程返回None
print("progress return is %s"%y)
print("function 2 return is %s"%z)
z() # 内存地址的调用

# 形参和实参
# 定义的时候 不传递实际的参数叫形参
def cal(x,y):
    return x+y

def de_func(x,d=3):
    return x + d
# 调用的时候 传递实际的参数,叫实参
print(cal(10,3))
x = 23
y = 31
# 位置参数调用 和 关键字调用
# 关键字参数 是不能在位置参数之前的
print(cal(y=y,x=x))
print(cal(x=x,y=3))
print(cal(2,y=4))
# 默认参数的特点:默认参数非必须传递
#

print(de_func(3,6))
"""函数中的非固定参数的使用
有时候对于函数扩展,不确定以后要扩展的内容,所以预留不固定参数
*args是以元组的形式传递给参数的
"""

# *args 会把多传入的参数变成一个元组形式 直接传递值就是传递位置参数

def Test(x,y,*args):
    z = x+y
    return z,args

print(Test(1,21,3,4,5,6,7,3))

# *kwargs 会把多传入的参数变成一个dict形式
def Tes_kwargs(x,y,**kwargs):
    print(x,y,kwargs)
    return kwargs

# 调用的时候必须传递变量名称及变量值,不能直接传递值,就是传递关键字参数
Tes_kwargs(1,2,province = "shandong",name = "richard")

"""函数中的局部变量和全局变量:
1、在在子程序中定义的变量称为局部变量
2、在程序一开始定义的变量称为全局变量
3、全局变量作用域是整个程序、局部变量作用域是定义该变量的子程序
"""
def People(name,age):
    hight = 31 #这就是局部变量
    print(name,age)

hight = 13 #全局变量 

People("haha",hight)

猜你喜欢

转载自blog.csdn.net/kokodudu/article/details/81538950
今日推荐