函数简单介绍

一、什么是函数

1.函数的概念
函数就是盛放功能(一系列代码)的容器,定义函数就是制造了一个工具
# 事先准备工具的过程叫做函数的定义
# 遇到应用场景拿来就用叫做函数的调用

2.为何要用函数
不用函数写出的代码存在的问题:
1)程序的组织结构不清晰,可读性差,维护性差
2)可扩展性差
因此灵活运用函数可以解决写出代码出现的上述问题,能够简化设计,扩展程序,方便快捷

3.运用函数的原则:先定义、后调用

二、定义函数和调用函数

1.定义函数的语法:
def 函数名(参数1,参数2,参数3,...): # def: 定义函数的关键字。函数名指向函数内存地址,是对函数体代码的引用。函数的命名应该反映出函数的功能
# 函数体
代码1
代码2
代码3
...
return 值 # 可有可无
# 函数定义阶段发生的事情:申请内存空间,把函数体代码放进去,然后把内存地址绑定给函数名
def func(): # func = 函数的内存地址
print("*" * 40)
print("hello".center(40, ' '))
print('=' * 40)
# 定义阶段检测语法,有语法错误则报错,若是逻辑错误则不报错
def func():
print(1)
print(2)
asdf # 不报错,无语法错误。有逻辑错误,在检测到asdf时候,把他当作一个没有赋值的变量
print(3)

def func():
print(1)
print(2 # 报错,存在语法错误,没有加括号
print(3)

2.调用函数的语法:
# 函数名加括号即函数调用
res = 函数名(值1,值2,值3...)
# 函数调用阶段发生的事情: 执行函数体代码
def bar():
print('from bar')
def foo():
print('from foo')
bar() #
foo() # 调用函数foo out>>> from foo from bar

def foo():
print('from foo')
bar()
def bar():
print('from bar')
foo() # 不报错,定义阶段函数foo与bar均无语法错误,而在调用阶段调用foo()时,函数foo与bar都早已经存在于内存中了,所以不会有任何问题。, out>>> from foo from bar

总结:函数定义阶段只检测语法不执行代码,只有在调用函数时才会执行函数体代码

三、函数的参数

函数的参数分为形式参数和实际参数,简称形参和实参
形参指定义函数时,括号内声明的的参数。形参本质是一个变量名,用来接收传来的值。
实参指调用函数时,括号内传入的值,值可以是常量、变量、表达式或三者组合
# 无形参函数
def func():
x = 10
y = 20
res = x + y
peint(res)
# 无形参函数,函数体已经将函数功能写死,将功能写活化,则改为有形参函数
# 有形参函数
def func(x, y):
res = x + y
print(res)
func(10, 20)

def login():
inp_user = input('your name: ').strip()
inp_pwd = input('your password: ').strip()
if inp_user == 'richer' and inp_pwd == "996":
print('ok')
else:
print('error')
# 等同于
def login(inp_user,inp_pwd):
if inp_user == 'richer' and inp_pwd == "996":
print('ok')
else:
print('error')
login('richer',"996") # 简化代码

四、函数的返回值

'''函数完成一个加工处理,若需要将函数体代码执行的结果返回给调用者进行进一步处理,则需要用到return'''
def max(sal1, sal2):
if sal1 > sal2
return sal1
else:
return sal2
res = max2(1000, 2000)
print(res * 12) # out>>> 24000 对2000 进行了进一步的处理

return返回值的语法:

函数内可以有多个return,但只要执行一次,整个函数成立即结束,并且将return后的值当作本次调用的产品返回
def fun():
print('aaa')
return 111
print('bbb')
return 222
print('ccc')
return 333
res = func()
print(res) # out>>> aaa 111 return,执行一次,整个函数成立即结束,返回第一个值111

函数的返回值有三种形式
1)return 值: 返回的就是该值本身
l = [11, 22, 33]
res = l.pop()
print(res) # out>>> 33
2)return 值1,值2,值3...:返回的是元组
def func():
return 111, "aaa", [222,333]
res = func()
print(res) # out>>> (111, "aaa", [222,333])
x, y ,z = func()
print(x, y, z) # out>>> 111, "aaa", [222,333] 相当于解压赋值
3)没有return或者return无值或者return None:返回值的都是None
def func():
res = 1 + 2
return
res = func()
print(res) # out>>> None

posted @ 2021-06-09 20:29  Richer-J  阅读(1046)  评论(0)    收藏  举报