"""
1、什么是函数
具备某一功能的工具===》函数
事先准备工具的过程===》函数的定义
遇到应用场景拿来就用=》函数的调用
2、为何要有函数
内置函数(python3解释器定义好的,我们只需要拿来使用即可)
1、拿来主义,提升开发效率
自定义函数:(把程序中实现某一功能一块代码组织整理到一起)
为了解决
1、增强程序的组织结构性、提升可读性
2、减少代码冗余
3、提升程序的可维护性与扩展性
3、如何用函数
使用原则:先定义,后调用
定义函数的语法:
def 函数名(参数1,参数2,参数3):
'''
文档注释
'''
代码1
代码2
代码3
。。。。。。
return 值
调用函数的语法:
函数名(值1,值2,值3)
"""
# 一:基本使用
# 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() # 逻辑错误,没有语法错误
# 二:先定义、后调用
# 函数的使用分为两个阶段
# 定义阶段:申请内存空间把函数体代码放进去,然后把内存地址绑定给函数名
# 调用阶段:通过函数名找到函数体代码,加括号触发函数体代码运行
# 强调:定义阶段只识别语法不执行代码,只有在调用阶段才会执行代码
# 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()
# 三:函数定义的三种形式
# 3.1 无参函数
# 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()
# 3.2 有参函数
# 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
# 四:函数调用的三种形式
# def max2(p1_msalary, p2_msalary):
# if p1_msalary > p2_msalary:
# return p1_msalary
# else:
# return p2_msalary
import hashlib
#
#
# 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)
函数返回值
# 函数的返回值
# 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)
函数参数
# 函数的参数分为两大类
# 形参:在定义函数阶段,括号内指定的参数,称之为形式参数,简称形参
# 形参相当于定义在函数内的变量名,用于接收外部传进来的值
def func(x,y):
# x=10
# y=11
print(x)
print(y)
# 实参:在调用函数阶段,括号内传入的值,称之为实际参数,简称实参
# 实参相当于变量值,用于为形参赋值的
func(10,11)
# ps:在函数调用时,会将实参的值绑定给形参,这种绑定关系只能在函数内使用,在函数调用完毕后,实参
# 与形参会解除绑定,回收占用的内存空间