dayⅩⅠ:函数的基本使用

一、函数

1、什么是函数

    具备某一功能的工具===》函数
    事先准备工具的过程===》函数的定义
    遇到应用场景拿来就用=》函数的调用

2、为何要有函数

    内置函数(python3解释器定义好的,我们只需要拿来使用即可)
        1、拿来主义,提升开发效率

    自定义函数:(把程序中实现某一功能一块代码组织整理到一起)
        为了解决
            1、增强程序的组织结构性、提升可读性
            2、减少代码冗余
            3、提升程序的可维护性与扩展性

3、如何用函数

    使用原则:先定义,后调用

    定义函数的语法:

        def 函数名(参数1,参数2,参数3):
            '''
            文档注释
            '''
            代码1
            代码2
            代码3
            。。。。。。
            return 值

    调用函数的语法:
        函数名(值1,值2,值3)
```python



### 4、基本使用
```python
x = 10  # x = 存放值10的那个内存空间的内存地址
print(x)

def login():  # login = 存放代码的那个内存空间的内存地址
    name = input("your name>>: ")
    pwd = input("your pwd>>: ")
    role = input("your role>>: ")
    if name == "egon" and pwd == "123" and role == "amdin":
        print('login successful')
    else:
        print("user or password error")


print(login)
login()
login()
login()
login()
login()
login()

x = 10
x() # 逻辑错误,没有语法错误

1、先定义、后调用

函数的使用分为两个阶段
定义阶段:申请内存空间把函数体代码放进去,然后把内存地址绑定给函数名
调用阶段:通过函数名找到函数体代码,加括号触发函数体代码运行

强调:定义阶段只识别语法不执行代码,只有在调用阶段才会执行代码
def func():
    xxx

func()
示范一:
def f2():
    print('from f2')


def f1():
    print('from f1')
    f2()

f1()
示范二:
def f1():
    print('from f1')
    f2()

def f2():
    print('from f2')

f1()

2、函数定义的三种形式

无参函数
def login():
    name = input("your name>>: ")
    pwd = input("your pwd>>: ")
    role = input("your role>>: ")
    if name == "egon" and pwd == "123" and role == "amdin":
        print('login successful')
    else:
        print("user or password error")

login()
有参函数
def max2(x,y):
    # x=10
    # y=11
    if x > y:
        print(x)
    else:
        print(y)


max2(10,11)
max2(20,21)

3.3 空函数
def login():
    """登录功能。。。"""
    pass


def register():
    pass


def transfer():
    pass


def withdraw():
    pass

3、函数调用的三种形式

def max2(p1_msalary, p2_msalary):
    if p1_msalary > p2_msalary:
        return p1_msalary
    else:
        return p2_msalary

x = max2(10, 11)
print(x * 12)

语句形式:单纯的调用
print("hello world")
max2(10,11)

表达式:
x = max2(1, 2)
res = max2(1, 2) * 12
print(res)

可以当做参数传给另外一个函数
print(max2(1,2))

res = max2(max2(10, 11), 12)
print(res)

4、函数的返回值

1、函数体内没有return,或return后没有值:默认返回是None
def func():
    # return None
    pass

res = func()
print(res)

# 2、return 值:返回的就是这一个值
def func():
    return 123

res=func()
print(res)

3、return 值1,值2,值3:返回一个小元组(值1,值2,值3)
def func():
    return 123, "abc", 3.1


res = func()
print(res, type(res))


补充:函数内可以有多个return,return是函数结束的标志,函数体代码但凡运行到一个
return就会立刻终止整个函数的运行,然后将return后的值当做本次调用的产品返回
def func():
    print("first")
    return 111
    print('second')
    return 2222
    print('third')
    return 3333
res=func()
print(res)

5、函数的参数分为两大类

形参
#在定义函数阶段,括号内指定的参数,称之为形式参数,简称形参
#形参相当于定义在函数内的变量名,用于接收外部传进来的值
def func(x,y):
    x=10
    y=11
    print(x)
    print(y)
实参
#在调用函数阶段,括号内传入的值,称之为实际参数,简称实参
#实参相当于变量值,用于为形参赋值的
func(10,11)

ps:在函数调用时,会将实参的值绑定给形参,这种绑定关系只能在函数内使用,在函数调用完毕后,实参
与形参会解除绑定,回收占用的内存空间
原文地址:https://www.cnblogs.com/qujiu/p/13137939.html