Python学习(三)


函数


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

定义
def 函数名 (传入参数):
函数体
return 返回值

调用
函数名(参数)

  • 函数必须先定义后调用
name = "visual_studio_code"
name_1 = "visual"
name_2 = "studio"
name_3 = "code"
# 定义一个计算长度的函数
def my_len(data):
    count = 0
    # 数据集是data,小心别弄错了
    for i in data:
        count += 1
    print(f"该字符串的长度为{count}")
my_len(name)
my_len(name_1)
my_len(name_2)
my_len(name_3)

函数的参数


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

# x,y 形式参数
def add(x,y):
    sum = x + y
    print(f"{x} + {y}的结果是{sum}")
# 10,19 实际参数
add(10,19)

函数的返回值


程序中函数完成事情后,最后给调用者的结果
函数体遇到return则结束,后面不会再执行
语法格式
def 函数(参数…)
函数体
return 返回值

变量 = 函数(实参)

# sum就是返回值
def add(x,y):
    sum = x + y
    return sum
# 返回值返回给r
r = add(2,4)
print(f"2 + 4 结果是{r}")

在这里插入图片描述
None类型
特殊字面量
表示:空的,无实际意义的内容

应用场景:

  • 用在函数无返回值上
  • 在if 判断中,None等同于False
  • 一般用于在函数中主动返回None,配合if判断做相关处理

def check_age(age):
    if age > 18:
        return "yes"
    else :
        return None
result = check_age(12)


if not result :
    # 进入if表示result是None值,也即是Flase
    print("小于18岁")

在这里插入图片描述


函数的嵌套使用


指一个函数里面又调用了另一个函数
函数A中执行到函数B的语句时,会将函数B全部执行完成后,继续执行函数A的剩余内容

# 定义函数func_b
def func_b():
    print("麦当劳")

# 定义函数func_a,并在内部调用func_b
def func_a():
    print("肯德基")
    # 调用func_b
    func_b()
    print("汉堡王")

# 调用函数func_a,这里开始执行!前面不要空格,否则无法输出结果
func_a()

在这里插入图片描述


变量的作用域


指变量的作用范围,在哪里可用,在哪里不可用

  • 局部变量
  • 全部变量

# 局部变量,作用范围:仅限函数体中
def func_a():
    kfc = "肯德基"
    print(kfc)

func_a()
# 全局变量,作用范围:函数体内体外都可以用使用

mdl = "麦当劳"
def func_b():
    print(f"func_b:{mdl}")
def func_c():
    # mdl在函数中变成了局部变量
    mdl = "m记"
    print(f"func_b:{mdl}")

func_b()
func_c()
print(f"mdl在func_c函数中被修改了,但是函数外仍然是:{mdl}")

在这里插入图片描述
global关键字
使用该关键字,可以在函数内部声明变量是全部变量

# 全局变量,作用范围:函数体内体外都可以用使用

mdl = "麦当劳"
def func_b():
    print(f"func_b:{mdl}")
def func_c():
    # 设置内部定义的变量是全局变量
    global mdl
    mdl = "m记"
    print(f"func_b:{mdl}")

func_b()
func_c()
print(f"mdl在func_c函数中被修改了并加上了global,代表改变的是全局变量,所以是:{mdl}")

在这里插入图片描述

函数综合案例


  • 定义一个全局变量money,用来记录银行卡的余额(默认有五百万)(要用到global关键字)
  • 定义一个全局变量name,用来记录客户的姓名
  • 定义函数:查询余额函数,存款函数,取款函数,主菜单函数
  • 要求:
  • 程序启动后要求输入客户姓名,
  • 查询余额,存款,取款后都会返回主菜单(continue)
  • 存款,取款后都显示当前余额(调用查询函数)
  • 客户选择退出或输入错误,程序退出(break),否则一直执行
# 定义全局变量money,name
money = 5000000
name = None

#输入客户名字
name = input("请输入您的姓名")
# 查询函数
def check(show_header):
    if show_header:
        # 传入一个布尔值,若为false则不打印标头
        print("---------查询余额----------")
    print(f"{name},您好,您的余额是{money}元")
# 存款函数
def saving(num):
    global money
    money += num
    print("--------- 取款-------- --")
    print(f"{name},你好,你已存入{num}")
# 调用查询函数,且不要查询函数的标头
    check(False)

# 取款函数
def get_money(num):
    global money
    money -= num
    print("--------- 存款-------- --")
    print(f"{name},你已取走{num}元")

    # 调用查询函数,且不要查询函数的标头
    check(False)

# 主菜单函数
def main():
    print("---主菜单---")
    print(f"{name},你好")
    print("查询余额请按\t\t【1】")
    print("存款请按\t\t【2】")
    print("取款请按\t\t【3】")
    print("退出请按\t\t【4】")
    # 要返回输入值,有return
    return input("请输入您的选择:")

# 设置无限循环,确保程序不退出
while True:
    keyboard_input = main()
    # 比较运算符==
    if keyboard_input == "1" :
        check(True)
        continue #通过continue进入下一次循环进入主菜单
    elif keyboard_input == "2" :
        # 不要忘了转换变量类型
        num = int(input("请输入数字"))
        saving(num)
        continue
    elif keyboard_input == "3" :
        num = int(input("请输入数字"))
        get_money(num) 
        continue
    else :
        print("退出程序")
        break

在这里插入图片描述

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值