栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

PY函数2

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PY函数2

一、变量 1)局部变量

**解释:**在函数内部定义变量名称

def test():
    a = 10
    print(a)
#调用函数
test()

打印结果

**注:**1. 局部变量只能用于当前的这个函数。
2.在一个文件里可以定义多个同名的局部变量,并且不受影响
用处:可以用来临时储存数据

2)全局变量

**解释:**在函数外声明的变量,能够在定义的所有函数里使用。并且全局变量要在所有函数的最上方。(写函数之前先把全局变量给定义了)

s = 100
def test():
    print(s)
1.全局变量和局部变量名字一样时
a = 200
def test():
    a = 100
    print(a)
    a = 300
    print(a)
#调用函数
test()

打印结果

**注:**当全局变量和局部变量名字一样时,函数会使用内部的局部变量。
局部找–>全局找–>报错

2.修改全局变量

方法: global+需要修改变量名
**不可修改的变量类型:**数字、元祖、字符串

x = 10
def test():
    # x = 100
    # print(x)
    global x
    x = 1010
    print(x)
  
#调用函数
test()
print(x)

打印结果

可以看到此时调用函数和直接打印x都变成了1010,证明在函数内部我们成功修改了全局变量。
list、字典、集合会在定义函数打印后改变。参考

li2 = [1,2]
def test2(a):
    a += a
    print(a)
#调用函数
test2(li2)
print(li2)

打印结果

3.使用函数外层变量

nonlocal:使用函数的外层变量

def test():
    num = 2
    def test2():
        nonlocal num
        num *= 2
        print(num)
    return test2()
#调用函数
test()
二、装饰器

定义: 装饰器本质上就是一个python函数,他可以让其他函数在不需要做任何代码变动的前提下,增加额外的功能,装饰器的返回值也是一个函数对象。

设计一个简单银行系统

def bank(accountID,name,money=0):
    print()

    def seeMoney():
        print("操作成功,剩余余额:", money)

    def putMoney(number):
        nonlocal money
        if isinstance(number, (int, float)) == True:
            if number >= 0:
                money = money + number
            else:
                print("存款金额不能为负数!")
        else:
            print("存款金额应该为数字类型!")
        seeMoney()

    def getMoney(number):#取款函数
        nonlocal money
        if isinstance(number,(int,float))==True:
            if number>=0 and number<=money:
                money=money-number
            else:
                print("余额不足!")
        else:
            print("取款金额应该为数字类型!")
        seeMoney()

    def menu():#定义菜单项
        while True:
            try:
                opNum = int(input("1.存钱 2.取钱 3.查询余额 4.退出n选择你要办理的业务:"))
                if opNum == 1:
                    number = int(input("请输入存款金额:"))
                    putMoney(number)
                elif opNum==2:
                    number=int(input("请输入取款金额:"))
                    getMoney(number)
                elif opNum==3:
                    seeMoney()
                elif opNum==4:
                    print("退卡成功!n")
                    break
                else:
                    print("请输入有效操作!")
            except:
                print("请输入有效操作!")
    return menu

users=[]#保存银行的所有储户
users.append(bank(1001,"张三"))


#使用索引调用函数
users[0]()

试用一下

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1007442.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号