一、函数的初体验
1.函数:是组织好的,可重复使用的,用来实现特定功能的代码段
2.为什么要学习、使用函数?
为了得到一个针对特定需求、可供重复利用的代码段,提高程序的复用性,减少重复性代码,提高开发效率
3.好处:将功能封装在函数内,可供随时随地重复利用
"""
演示快速体验函数的开发及应用
"""
# 需求,统计字符串的长度,不使用内置函数len()
str1="itheima"
str2="itcast"
str3="python"
# 定义一个计数的变量
count=0
for i in str1:
count+=1
print(f"字符串{str1}的长度是:{count}")
count=0
for i in str2:
count+=1
print(f"字符串{str2}的长度是:{count}")
count=0
for i in str3:
count+=1
print(f"字符串{str3}的长度是:{count}")
# 可以使用函数,来优化这个过程
def my_len(date):
count=0
for i in date:
count+=1
print(f"字符串{date}的长度是:{count}")
二、函数的基础定义语法
1.函数的定义:
def 函数名(传入参数):
函数体
return 返回值
2.注意事项
参数如不需要,可以省略
返回值如不需要,可以省略
函数必须先定义,后使用
"""
演示函数的定义语法
"""
# 定义一个函数,输出相关信息
def say_hi():
print("hi")
# 调用函数,让定义的函数开始工作
say_hi
三、函数的传入参数
1.函数定义中,提供的x和y称之为形式参数(形参),表明函数声明将要使用两个参数
2.参数之间使用逗号进行分隔
3.函数调用中,提供的5和6称之为实际参数,表示函数值执行时真正使用的参数值
4.传入的时候,按照顺序传入数据,使用逗号分隔
5.传入参数的数量是不受限制的
"""
演示函数使用参数
"""
# 定义二数相加的函数,通过参数接收被计算的两个数字
def add(x,y):
result=x+y
print(f"{x}+{y}的计算结果是:{result}")
# 调用函数,传入被计算的两个数字
add(5,6)
四、函数的返回值定义语法
1.返回值:就是程序中函数完成事情后,最后给调用者的结果
2.定义语法
def 函数(参数……):
函数体
return 返回值
变量=函数(参数)
3.函数体在遇到return后就结束了,所以写在return后的代码不会执行
"""
定义函数返回值的语法格式
"""
# 定义一个函数,完成两数相加功能
def add(a,b):
result=a+b
# 通过返回值,将相加的结果返回给调用者
return result
# 函数的返回值,可以通过变量去接收。
r=add(5,6)
print(r)
五、函数返回值的None类型
1.None可以主动使用return返回,效果等同于不写return语句
2.应用场景
用在函数无返回值上
用在if判断上:在if判断中,None等同于False,一般用于在函数中主动返回None,配合if判断做相关处理
用于声明无内容的变量上:定义变量,但暂时不需要变量有具体值,可以用None来代替
3.None是类型'NoneType'的字面量,用于表示:空的、无意义的
"""
演示特殊字面量
"""
# 无return语句的函数返回值
def say_hi():
print("你好呀")
result=say_hi()
print(f"无返回值函数。返回的内容是:{result}")
print(f"无返回值函数。返回的内容类型是:{type(result)}")
#主动返回None的函数
def say_hi():
print("你好呀")
return None
result=say_hi
print(f"无返回值函数。返回的内容是:{result}")
print(f"无返回值函数。返回的内容类型是:{type(result)}")
# None用于if判断
def check_age(age)
if age>18:
return"SUCCESS"
else:
return None
result=check_age(16)
if not result:
# 进入if表示result是None值,也就是False
print("未成年,不可以进入")
六、函数的说明文档
1.作用:对函数进行说明解释,帮助更好理解函数的功能
2.定义语法
def func(x,y):
"""
函数说明
:param x:参数x的说明
:param y:参数y的说明
:return: 返回值的说明
"""
函数体
return 返回值
:param用于解释参数
:return用于解释返回值
"""
演示对函数进行文档说明
"""
# 定义函数,进行文档说明
def add(x,y):
"""
add函数可以接收两个参数,进行两数相加的功能
"""
result=x+y
print(f"两数相加的结果是:{result}")
return result
七、函数的嵌套调用
1.函数嵌套是指一个函数里面又调用了一个函数
2.如果函数a中,调用了另一个函数b,那么先把函数b中的任务都执行完毕之后,才会回到上次函数a执行的位置。
"""
演示嵌套调用函数
"""
# 定义函数func_b
def func_b():
print("---2---")
# 定义函数func_a,并在内部调用func_b
def func_a():
print("---1---")
# 嵌套调用func_b
func_b()
print("---3---")
# 调用函数func_a
func_a()
八、变量的作用域
1.变量作用域指的是变量的作用范围,(变量在哪里可用,在哪里不可用)
2.局部变量:是定义在函数体内部的变量,即指在函数体内部生效
3.局部变量作用:在函数体内部,临时保存数据
"""
演示在函数使用的时候,定义的变量作用域
"""
# 演示局部变量
def test_a()
num = 100
print(num)
test_a()
#出了函数体,局部变量就无法使用了
print(num)
4.全局变量:在函数体内、外都能生效的变量
# 演示全局变量
num= 200
def test_a()
print(f"test_a: {num}")
def test_b()
print(f"test_b: {num}")
test_a()
test_b()
print(num)
#在函数内修改全局变量
num 200
def test_a():
print(f"test_a: {num}")
def test_b():
num =500 # 局部变量
print(f"test_b: {num}")
test_a()
test_b()
print(num)
5.global关键字
使用global关键字,可以在函数内部声明变量为全局变量
# global关键字,在函数内声明变量为全局变量
num = 200
def test_a():
print(f"test_a: {num}")
def test_b():
global num #设置内部定义的变量为全局变量
num =500
print(f"test_b: {num}")
test_a()
test_b()
print(num)