python入门(五)——python函数

系列文章目录

python入门(一)——你好python
python入门(二)——python基础语法
python入门(三)——python判断语句
python入门(四)——python循环语句
python入门(六)——python数据容器
python入门(七)——python函数进阶



1 函数介绍

函数:组织好、可重复使用、用来实现特定功能的代码段

好处

  • 提高程序的复用性、减少重复性代码、提高开发效率
  • 将功能封装在函数内,可随时随地重复利用

2 函数的定义

函数的定义

def 函数名(传入参数):
	函数体
	return 返回值
# 不可缺少括号
# 函数的调用:函数名(参数)

先执行调用函数,在执行函数里的代码

注意事项

  • 参数不需要可以省略
  • 返回值不需要可以省略
  • 函数必须先定义再使用
def welcome():
    print("欢迎来到比奇堡!")
    print("请出示您的健康码以及48小时核酸阴性证明!")

welcome()

欢迎来到比奇堡!
请出示您的健康码以及48小时核酸阴性证明!

3 函数的参数

函数的传入参数

功能:在函数进行计算时,接受外部(调用时)提供的数据

def add():
	result = 1 + 2
	print(f"1 + 2的结果是:{result}")

def add(x, y):
	result = x + y
	print(f"{x} + {y}的结果是:{result}")

add(1, 2)
1 + 2的结果是:3
  • 函数定义中提供x和y,称为形式参数(形参),表示函数声明将要使用2个参数,参数之间使用逗号进行分隔
  • 函数调用中提供的1和2,称为实际参数(实参),表示函数执行时真正使用的参数值,传入的时候按照顺序传入数据,使用逗号分隔

传入参数的数量不受限制,可以不使用参数,也可以仅使用任意N个参数

temp = float(input("欢迎来到黑马程序员!请出示您的健康码以及72小时核算证明,并配合测量体温!"))

def check(num):
    if num <= 37.5:
        print(f"体温测量中,您的提问是:{num}度,体温正常请进!")
    else:
        print(f"体温测量中,您的提问是:{num}度,需要隔离!")

check(temp)

欢迎来到黑马程序员!请出示您的健康码以及72小时核算证明,并配合测量体温!37.5
体温测量中,您的提问是:37.5度,体温正常请进!

4 函数的返回值

返回值是程序中函数完成事情后,最后给调用者的结果

def 函数(参数...):
	函数体
	return 返回值

变量 = 函数(参数)#变量接受返回的函数值
def add(a, b):
    result = a + b
    return result
    print("结束运行!")
# return后面的代码都不会被执行

r = add(5, 6)
print(r)

11

None类型

无返回值的函数,实际上是返回None字面量

def add(a, b):
    result = a + b

r = add(5, 6)
print(r)

None
def add(a, b):
    result = a + b
    print(result)

r = add(5, 6)
print(r)

11
None
def add(a, b):
    result = a + b
    print(result)
    return None

r = add(5, 6)
print(r)
type(r)
print(type(r))

11
None
<class 'NoneType'>

None应用场景

  • 用在函数无返回值上
  • 用在if判断上,在if判断中,None等同于False,一般用于在函数中主动返回None,配合if判断做相关处理
  • 用于声明无内容变量,不需要变量有具体值可以用None代替
def check_age(age):
    if age >= 18:
        return "SUCCESS"
    else:
        return None

result = check_age(16)
if not result:
    print("未成年,不可以进入")
   
未成年,不可以进入

5 函数说明文档

给函数添加说明文档,辅助理解函数作用

def func(x, y):
	"""
	函数说明
	:param x:形参x的说明
	:param y:形参y的说明
	:return:return返回值的说明
	"""
	函数体
	return 返回值

通过多行注释的形式,对函数进行说明解释,内容应写在函数体之前

鼠标悬停可以看到函数的说明文档
在这里插入图片描述

6 函数的嵌套调用

函数里面又调用了另外一个函数

def func_b():
	print("---2---")

def func_a():
	print("---1---")
	func_b()
	print("---3---")

# 调用函数func_a
func_a()

---1---
---2---
---3---

执行流程
函数A中执行到调用函数B的语句,会将函数B全部执行完成后,继续执行函数A的剩余内容

7 变量的作用域

局部变量

定义在函数体内部的变量,只在函数体内部生效,临时保存数据,调用完成后立刻销毁局部变量

def test_a():
    num = 100
    print(num)

test_a()
print(num)

100
NameError: name 'num' is not defined

全局变量

在函数体内、外部都能生效的变量

num = 100
def test_a():
    print(num)

test_a()
print(num)

100
100

全局变量vs局部变量

num = 100
def test_a():
    print(num)

def test_b():
    num = 500
    print(num)

test_a()
test_b()
print(num)

100
500
100

global关键字

可以在函数内部声明变量为全局变量

num = 100
def test_a():
    print(num)

def test_b():
    global num
    num = 500
    print(num)

test_a()
test_b()
print(num)

100
500
500

8 综合案例

money = 5000000
name = input("请输入您的名字:")

def query(show_header):
    if show_header:
        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("查询余额\t[输入1]")
    print("存款\t\t[输入2]")
    print("取款\t\t[输入3]")
    print("退出\t\t[输入4]")
    return input("请输入您的选择:")

while True:
    key = main()
    if key == "1":
        query(True)
        continue
    elif key == "2":
        saving(int(input("请输入您的存款金额:")))
        continue
    elif key == "3":
        get_money(int(input("请输入您的取款金额:")))
        continue
    elif key == "4":
        print("程序退出啦!")
        break
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值