零基础学python第五章笔记(函数)

第五章

1、认识函数

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

使用函数的好处:

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

案例:不使用内置函数(),完成字符串长度的计算

# 统计字符串的长度,不使用内置函数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(data):
    count = 0
    for i in data:
        count += 1
        print(f"字符串{data}的长度是{count}")
my_len(str1)
my_len(str2)
my_len(str3)

 2、函数的基础语法

# 定义一个函数,输出相关信息
def say_hi():
    print("hi,我是黑马程序员")
# 调用函数,让定义的函数开始工作
say_hi()

# 定义一个函数,函数任意,要求用调用函数后可以输出如下语句:
# 欢迎来到黑马程序员,请出示您的建康码以及72小时核酸证明
def check():
    print("欢迎来到黑马程序员!")
    print("请出示您的建康码以及72小时核酸证明!")
check()

 3、函数的传入参数

  •  函数的传入参数的作用是:在函数运行时,接受外部传入的数据
  • 传入的参数的数量是不受限制的:可以不使用参数、也可以仅使用任意n个参数
# 定义两个相加的函数,通过参数接受两个被计算的2个数字
# 函数定义中,提供的x和y,称之为形式参数,表示函数声明将要使用两个参数
# 在函数调用中,提供的5和6,称之为实际参数,表示函数执行时真正是哟个的参数值
def add(x,y):
    result = x+y
    print(f"{x} + {y}的结果是:{result}")

# 调用函数,传入被计算的两个数字
add(5,6)
# 案例:升级自动查核酸
def check(num):
    # 在函数体中进行体温判断
    print("欢迎来到黑马程序员,请出示您的健康吗以及72小时核酸证明,并配合测量体温")
    if num <=37.5:
        print(f"体温测量中,您的体温是:{num}度,体温正常请进!")
    else:
        print(f"体温测量中,您的体温是:{num}度,需要隔离")
# 调用函数,传入实际参数
check(37.3)

 4、函数的返回值定义语法

  • 什么是函数的返回值:函数在执行完成后,返回给调用者的结果
  • 使用关键字return来返回结果
  • 函数体在遇到return后就结束了,所以写在return后的代码就不会执行

# 定义一个函数,完成2数相加功能
def add(a, b):
    result = a + b
    # 通过返回值,将相加的结果返回给调用者
    return result
# 函数的返回值,可以通过变量去接受
r = add(5, 6)

5、返回值none

  • 什么是none:是nonetype的字面量,用于表示,空的,无意义的
  • 使用场景:函数返回值、if判断、变量定义
  • # 无return语句的函数返回值
    def say_hi():
        print("你好呀")
    result = say_hi()
    print(f"无返回值函数,返回的内容是:{result}")
    print(f"无返回值函数,返回的内容类型是:{type(result)}")
    
    # 主动返回none的函数
    def say_hi2():
        print("你好呀")
        return None
    result = say_hi2()
    print(f"无返回值函数,返回的内容是:{result}")
    print(f"无返回值函数,返回的内容类型是:{type(result)}")
    
    def check_age(age):
        if age > 18:
            return "SUCCESS"
        else:
            return "None"
    
    result = check_age(16)
    if not result:
        print("未成年,不可以进入")
    # 变量定义
    name = None
    

    6、函数的返回值

    # 定义函数,进行说明文档
    def add(x, y):
        """
        add函数可以接收两个参数,进行两数相加的功能
        :param x:形参x表示相加其中的一个数
        :param y:y表示相加的另一个数
        :return:返回值是2书数相加的结果
        """
        result = x + y
        print(f"2数相加的结果是:{result}")
        return result
    add(5, 6)

    7、函数的嵌套调用

 

# 定义函数func_b
def func_b():
    print("---2---")
# 定义函数func_c,并在内波调用func_b
def func_a():
    print("---1---")
    # 嵌套调用func_b
    func_b()
    print("---3---")
# 调用函数func_a
func_a()

 8、变量在函数中的作用域

 

 

# 变量在函数中的作用域
# 演示局部变量
# def tesr_a():
#     num = 100
#     print(num)
# tesr_a()
# # 出了函数体,局部变量就不可以用了
# print(num)


# 演示全局变量
# 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():
    global num  # 设置内部定义的变量为全局变量
    num = 500  # 局部变量
    print(f"test_b:{num}")

test_a()
test_b()
print(num)

 9、综合案例

# 黑马atm
# 定义全局变量money name
money = 5000000
name = None
# 要求客户输入姓名
name = input("请输入您的姓名:")
# 定义查询函数
def query(show_header):
    if show_header:
        print("---------查询余额----------")
    print(f"{name},您好,您的剩余余额为:{money}元")
# 定义存款函数
def saving(num):
    global money # money在函数中定义为全局变量
    money += num
    print("----------存款------------")
    print(f"{name},您好,您存款{num}元成功.")

    # 调用query函数查询余额
    query(False)
# 定义取款函数
def get_money(num):
    global money
    money -= num
    print("----------取款------------")
    print(f"{name},您好,您取款{num}元成功.")
    # 调用query函数查询余额
    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("请输入您的选择:")
# 通过反斜杠t制表符对齐输出
# 设置无限循环,保证函数不会退出
while True:
    keyword_input = main()
    if keyword_input == "1":
        query(True)
        continue  # 通过contiue,返回主菜单
    elif keyword_input == "2":
        num = int(input("您想要存入多少钱,请输入:"))
        saving(num)
        continue
    elif keyword_input == "3":
        num = int(input("您想要去多少钱?,请输入:"))
        get_money(num)
        continue
    else:
        print("程序退出啦")
        break

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值