摘要:本文系统介绍了 Python 函数的基础知识,涵盖函数定义、参数传递、返回值、说明文档、嵌套调用、变量作用域等核心概念,并通过多个代码示例和综合案例(数加 ATM)帮助读者从零开始掌握函数的使用。文章结构清晰,从基础语法到实际应用层层递进,适合 Python 初学者学习。
一、函数介绍
1、掌握函数的基础定义语法格式 函数定义语法格式:
函数定义语法格式:
def 函数名(传入的参数): # 参数暂不讨论
函数体
return 返回值 # 返回值暂不讨论
函数使用语法格式:
函数名(参数)
def 函数名():
函数体
练习
def bigdata_ai():
print("hello func!")
#使用函数
bigdata_ai()
二、函数参数
函数传入参数功能:在函数进行计算的时候,接收外部(调用时)提供的数据。
函数定义语法格式:
def 函数名(传入的参数):
函数体
函数传入的参数:函数传入参数的数量是不受限制的。
(1)可以不使用参数
(2)也可以使用N个参数
例题
#需求:要求使用函数完成两个数据相加的功能
#定义函数
def add():
result = 1 + 2
print(f"1 + 2 的结果是:{result}")
#使用函数
add()
# 需求:要求使用函数完成两个数据相加的功能
def add(x,y):
result = x + y
print(f"{x} + {y} 的结果是:{result}")
# 使用
add(4,4)
三、函数解析
1、函数定义中,提供的x和y,称之为:形式参数(形参),表示函数声明将要使用2个参数,参数之间使用逗号分隔。
2、函数使用中,提供的4和4,称之为:实际参数(实参),表示函数执行的时候真正使用的参数值,传入的时候,按照顺序传入数据,使用逗号分隔。
四、函数返回值
1、函数返回值的定义
学习目标:
(1)掌握函数返回值的作用
(2)掌握函数返回值的定义语法
函数返回值:就是程序中函数完成事情后,最后给调用者的结果。
函数返回值语法格式:
def 函数名(参数……):
函数体
return 返回值
函数使用语法格式:
变量名 = 函数名(参数…..)
2、None类型
思考?如果函数没有使用return语句返回数据,那么函数有返回值吗? 有的
python中有一个特殊字面量:None,其类型是:<class 'NoneType'>
无返回值的函数,实际上就是返回了None字面量
None:表示空的,无实际意义的,
函数返回None,就表示这个函数没有返回什么有意义的内容,也就是返回空的意思。
None类型的使用场景:
1、用在函数无返回值
2、用在if判断上
(1)在if判断中None相当于False
(2)一般用在函数中主动返回None,配合if判断做相关处理
3、用于声明无内容的变量上
(1)定义变量,但暂时不需要变量有具体的值,可以用None类型l
练习
# 需求:要求使用函数完成两个数据相加的功能,要求返回
def add(a,b):
result = a + b
return result
r = add(1,2)
print(r)
#定义两个数相加的函数功能,完成功能后,会将相加的结果返回给调用者,所以变量r接收到函数的执行结果。
def add2(a,b):
result = a + b
r2 = add2(1,2)
print(r2)
print(type(r2))
# 无return语句的函数
def add2(a,b):
result = a + b
r2 = add2(1,2)
print(r2)
# 主动返回None
def say_hi():
print("hello func!")
return None
result = say_hi()
print(f"主动返回None函数的内容是:{result},其类型是:{type(result)}")
# None 用在if判断上
def check_age(age):
if age > 18:
return "成年!"
else:
return None
result2 = check_age(17)
if not result2:
print("年龄小于18")
# 用在声明变量上
name = None
age = None
五、函数说明文档
掌握通过注释对函数进行解释说明
函数是纯代码语言,想要理解其含义就需要一行行去阅读理解代码,效率比较低
可以给函数添加说明文档,辅助理解函数的作用。
# 函数说明文档语法格式:
def func(x,y):
"""
函数说明
:param x: 形参x的说明
:param y: 形参y的说明
:return: 返回值
"""
函数体
return 返回值
# 定义一个函数,进行文档说明
def add(a,b):
"""
add函数可以接收2个参数,进行两数相加的功能。
:param a: 形参a表示相加的一个数字
:param b: 形参a表示相加的另一个数字
:return: 返回值是两数相加的结果
"""
result = a + b
print(f"a+b的结果是:{result}")
return result
# 使用函数,在pycharm中编写代码时,可以通过鼠标悬停,查看调用函数的说明文档。
add(1,2)
六、函数的嵌套使用
学习目标:
1、掌握函数的嵌套使用
2、理解嵌套调用的执行流程
函数嵌套调用:指的是一个函数里面又调用了另外一个函数,
执行流程:如果函数A中,调用另外一个函数B,那么先把函数B中的任务都执行完毕之后才会回到上次函数A执行的地方继续执行
# 定义函数B
def func_B():
print("***1***")
#定义函数A
def func_A():
print("2")
# 使用函数B
func_B()
print("3")
#调用函数A
func_A()
七、变量作用域
1、了解什么是局部变量
2、了解什么是全局变量
变量的作用域(作用范围):变量作用域指的是变量的作用范围(变量在哪里可用,哪里不可用)
变量的作用域分类:
局部变量:在函数体内部的变量,即只在函数体内生效
局部变量作用:在函数体内部,临时保存数据,即当函数调用完后,则销毁局部变量
全局变量:指的是在函数体内、外都能生效的变量
global 关键字:可以在函数体内部声明变量为全局变量
#局部变量
def test_A():
num = 100
print(num)
test_A()
print(num) # NameError: name 'num' is not defined. Did you mean: 'sum'?
#全局变量
# 定义一个全局变量
a = 100
# 定义一个函数B
def test_B():
print(a)
def test_C():
print(a)
test_B()
test_C()
# 在函数内修改全局变量
# 定义一个全局变量
a = 100
# 定义一个函数B
def test_B():
print(a)
def test_C():
global a
a = 200
print(a)
test_B()
test_C()
print(a)
八、综合案例
综合案例:数加ATM
定义一个全局变量:money,用来记录银行卡余额(默认余额为:60000000)
定义一个全局变量:name,用来记录客户姓名(程序启动时输入)
定义如下函数:
查询余额函数
存款函数
取款函数
主菜单函数
要求:
程序启动后要求输入客户姓名
查询余额、存款、取款后都会返回主菜单
存款、取款后,都应显示一下当前余额
客户选择退出或者输入错误,程序会退出,否则会一直运行
主菜单效果:
———————主菜单—————————–
xxxx,您好,欢迎来到数加银行ATM。请选择操作:
查询余额 【请输入1】
存款 【请输入2】
取款 【请输入3】
退出 【请输入4】
请输入您的选择:
查询余额的效果:
———————查询余额—————————–
xxxx,您好,您的余额剩余:60000000元
存、取款效果:
———————存款—————————–
xxxx,您好,你存款50000元成功!
xxxx,您好,您的余额剩余:60050000元.
———————取款—————————–
xxxx,您好,你取款50000元成功!
xxxx,您好,您的余额剩余:60000000元.
# 定义全局变量
money = 60000000
name = None
# 要求输入姓名
name = input("请输入您的姓名:")
# 定义查询余额函数
def query(is_show):
if is_show:
print("———————查询余额—————————–")
print(f"{name},您好,您的余额剩余:{money}")
# 定义存款函数
def saving(num):
global money
money += num
print("———————存款—————————–")
print(f"{name}, 您好,你存款{num}元成功!")
# 调用查询函数
query(False)
# 定义取款函数
def get_money(num):
global money
money -= num
print("———————取款 – —————————-")
print(f"{name}, 您好,你取款{num}元成功!")
query(False)
# 定义主菜单函数
def main():
print("———————主菜单—————————–")
print(f"{name},您好,欢迎来到数加银行ATM。请选择操作:")
print("查询余额 【请输入1】")
print("存款 【请输入2】")
print("取款 【请输入3】")
print("退出 【请输入4】")
return input("请输入您的选择:")
# 程序一直执行 无限循环
while True:
# 调用主菜单函数
key_word = main()
# print(key_word)
# 判断用户的选择
if key_word == "1":
query(True)
# 结束本次循环
continue
elif key_word == "2":
# 输入存的钱
num = int(input("请输入您要存多少钱:"))
saving(num)
# 结束本次循环
continue
elif key_word == "3":
# 取多少钱
num = int(input("请输入您取款多少钱?"))
get_money(num)
# 结束本次循环
continue
else:
print(f"程序退出")
break
网硕互联帮助中心



评论前必须登录!
注册