Python Day5

一、函数的初体验

1.函数代表:

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

例:

name = "yyqx"

length = len(name)

print(length)

为什么随时可以使用len()长度 因为len()是python内置的函数 是提前写好的 可以重复使用 实现统计长度这一特定功能的代码段

# 统计字符串的长度,不使用内置函数len()

str1 = "wswjk"
str2 = "wswy"
str3 = "wsyyqx"

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}")

# 使用函数,来优化这个过程

str1 = "wswjk"
str2 = "wswy"
str3 = "wsyyqx"

def len(str):
    count = 0
    for i in str:
        count +=1
    print(f"字符串{data}的长度是{count}")

len(str1)
len(str2)
len(str3)

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

二、函数基础定义语法

1.定义:

def  函数名(传入参数):

       函数体

      return 返回值

传入参数和return返回值可以先忽略

# 定义一个函数,输出相关信息
def say_hi():
    print("你好我是玊尔")

# 调用函数,让定义的函数开始工作
say_hi()

2.练习

# 定义一个函数,函数名任意,要求调用函数后可以输出如下欢迎语
# 欢迎来到动物园!
# 请出示您的相关证件!

# 定义函数
def say():
    print("欢迎来到动物园!\n请出示您的相关证件") # \n换行符

# 调用函数
say()

三、函数的参数

1.定义

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

例:

# 定义两数相加的函数,通过参数接收被计算的两个数字

def add(x,y):

    result = x+y

    print(f"{x}+{y}={result}")

# 调用函数,传入被计算的两个数字

add(4,6)

函数定义中,提供的x和y,称之为:形式参数(形参),表示函数声明将要使用2个参数

参数之间使用逗号进行分隔

函数调用中,提供的4和6,称之为:实际参数(实参),表示函数执行时真正使用的参数值

传入的时候,按照顺序传入数据,使用逗号分隔

传入的参数数量不受限制,0个或任意个

2.练习

# 定义一个函数,名称任意,并接收一个参数传入(数字类型,表示体温)
# 在函数内进行体温判断(正常范围:小于等于37.3度),并输出内容:

def tep(int(num)):
    if num > 37.3:
        print(f"请出示您的健康码以及72小时核酸证明,并配合测量体温!\n体温测量中,您的体温是:{num}度,体温异常,需要隔离。")
    else:
        print(f"请出示您的健康码以及72小时核酸证明,并配合测量体温!\n体温测量中,您的体温是:{num}度,体温正常,请进。")

tep(36.6)

 四、函数的返回值

1.定义语法

def 函数(参数):

      函数体

      return 返回值

变量 = 函数(参数)

例:

def add(a,b):

    result = a+b

    return result

 r = add(3,7)

print(r)

如上代码,定义两数相加的函数功能,完成功能后,会将相加的结果返回给函数调用者

所以,变量r接收到了函数的执行结果

综上所述 所谓“返回值”就是程序中函数完成事情后,最后给调用者的结果

五、None类型

1.含义:

空的 无实际意义的意思

函数返回的None,表示这个函数没有返回什么有意义的内容 也就是返回了空的意思

# 无return语句的函数返回值

def say_hi():
    print(f"你好呀")

result = say_hi()
print(f"无返回值函数,返回的内容是:{result}")
print(f"无返回值函数,返回的内容类型是:{type(result)}")

# 主动返回None的函数

def say_hi1():
    print("你好呀")
    return None

resule = say_hi()
print(f"无返回值函数,返回的内容是:{resule}")
print(f"无返回值函数,返回的内容类型是:{type(resule)}")

2.应用场景

(1)用在函数无返回值上

(2)用在 if 判断上

# 在 if 判断中 None等同于False

# 一般用于在函数中主动返回None,配合 if 判断做相关处理

# None在if判断中的应用
def check(age):
    if age >=18:
        return "success"
    else:
        return None
result =check(15)
if not result:
    # 进入if表示result是None值,也就是False
    print("未成年人不可进入")

(3)用于声明无内容的变量上

定义变量,但暂时不需要变量有具体值,可以用None来代替

暂不赋予变量具体值

name = None

声明无初始值内容的变量

六、函数说明文档

1.语法如下

def func(x,y):

    """

    函数说明

    :param x:形参X的说明

    :param y: 形参y的说明

    :return: 返回值的说明

    """

    函数体

    return 返回值

# 通过的多行注释形式,对函数进行说明解释

# 内容写在函数体之前

例:

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

add(4,5)

七、函数的嵌套调用

指在一个函数里面又调用了另一个函数

# 定义函数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()

如果在函数A中,调用了另一个函数B,那么先把函数B中的任务都执行完毕之后才会回到上次 函数A执行的位置

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

1.定义

变量的作用域指的是变量的作用范围(变量在哪里可用,在哪里不可用)

主要分两类:局部变量和全局变量

2.局部变量

局部变量是定义在函数体内部的变量,即只在函数体内部生效

def testA():
    num = 100
    print(num)
testA()
print(num) # 报错:name 'num' is not defined

变量a 是定义在 testA函数内部的变量,在函数外部访问则立即报错
局部变量的作用:在函数体内部,临时保存数据,即当函数调用完成后,则销毁局部变量

3.全局变量

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

# 定义一个全局变量
num = 100
def test():
    print(num)
def test2():
    print(num)
test()
test2()
print(num)

4.global 关键字

# 在函数内修改全局变量
num = 200
def test():
    print(num)
def test2():
    global num
    num = 300 
    print(num)

test()
test2()
print(num)

九、综合练习

# 控制台ATM
# 定义一个全局变量,money,用来记录银行卡余额(默认5000000)
# 定义一个全局变量,name,用来记录客户姓名(启动程序时输入)
# 定义如下函数:
# 1.查询余额函数
# 2.存款函数
# 3.取款函数
# 4.主菜单函数
# 要求:
# 程序启动后要求输入客户姓名
# 查询余额,存款,取款后都会返回主菜单
# 存款,取款后都应显示一下当前余额
# 客户选择退出或输入错误,程序退出,否则一直运行

# 定义全局变量
money = 5000000
name = input("请输入你的姓名:")

# 定义查询余额函数
def query(show_header):
    if show_header:
        print("--------查询余额--------")
    print(f"{name}您好,您的余额为{money}元")

# 定义存款函数
def save_money(num):
    global money # money在函数内部定义为全局变量
    money += num
    print(f"{name}您好,您存款{num}元")
    query(False)

# 定义取款函数
def get_money(num):
    global money
    money -= num
    print("--------取款--------")
    print(f"{name}您好,您取款{num}元")
    query(False)

# 定义主菜单函数
def main():
    print(f"--------主菜单--------")
    print(f"{name}您好,欢迎使用ATM机,请选择操作:")
    print("查询余额\t请按1")
    print("存款\t\t请按2")
    print("取款\t\t请按3")
    print("退出\t\t请按4")
    return input("请输入你的选择:")

# 程序无限循环
while True:
    keyboard = main()
    if keyboard == "1":
        query(True)
        continue
    elif keyboard =="2":
        num = int(input("请输入你的存款金额:"))
        save_money(num)
        continue
    elif keyboard =="3":
        num = int(input("请输入你的取款金额:"))
        get_money(num)
    else:
        print("程序已退出")
        break

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值