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

Python 函数局部变量,全局变量,函数传参,缺省参数,多值参数,元组进行拆包,匿名函数

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

Python 函数局部变量,全局变量,函数传参,缺省参数,多值参数,元组进行拆包,匿名函数

目录

1.name属性值,一般情况下, 都需要将模块内的调试代码置于该条件下, 以防止被其他模块导入后, 调试代码也参与执行

# 通常写完代码底部会加上这个   if __name__ == '__main__'if __name__ == '__main__':#  当写了if   __name__ == '__main__'下面的都不会被调用   只调用上面的    pass

#name==main 为真(Tuer) name==其它数 为假(floas)

2.变量的进阶局部变量和全局变量:

 2.1局部变量:

2.2全局变量:是在函数外部定义的变量, 所有函数内部都可以使用

3.1缺省参数:定义函数时,给某个参数指定一个默认值,具有默认值的参数

3.2多值参数:如果一个函数能够处理的参数个数是不确定的, 可以考虑使用多值参数

4.元组拆包的方式:在元组变量前,增加一个 *

5.匿名函数:


1.name属性值,一般情况下, 都需要将模块内的调试代码置于该条件下, 以防止被其他模块导入后, 调试代码也参与执行


# 通常写完代码底部会加上这个   if __name__ == '__main__'
if __name__ == '__main__':
#  当写了if   __name__ == '__main__'下面的都不会被调用   只调用上面的
    pass

#name==main 为真(Tuer) name==其它数 为假(floas)

2.变量的进阶局部变量和全局变量:

 2.1局部变量: • 局部变量是在函数内部定义的变量, 只能在函数内部使用 • 函数执行结束后, 局部变量会被系统回收 • 不同的函数, 可以定义相同的名字的局部变量, 彼此之间 不会产生影响

# 函数的定义封装~~~~~~~~~
# def 函数名():
#     函数封装的代码。。。。。

#函数内部定义叫局部变量!!!!!!!!!!!
def login_front():
    user='admin'
    pwd='123456'
    print(user,pwd)
    return pwd
if __name__ == '__main__':
    print(login_front())
#局部变量用一次就会呗释放 不存在这个数字

# 引用是  变量中来存储数据的地址

2.2全局变量:是在函数外部定义的变量, 所有函数内部都可以使用

函数中变量获取顺序:

1. 首先查找函数内部是否存在指定名称的局部变量, 如 果有直接使用 2. 内部如果没有, 则查找函数外部是否存在指定名称的 全局变量, 如果有直接使用 3. 如果还没有, 则程序报错

# 函数外部定义,是全局变量!!!!!!!
#定义一个全局变量
g_num='牛逼'
#在函数中使用全局变量  1.可以在任意位置只用全局变量
def func():
    print(g_num)
         #局部变量用一次就会被释放 不存在这个数字
def func1():
    g_num='牛马'           #局部变量和全局变量同名  就近使用  会先使用局部变量
    print(g_num)
# #在函数中定义全局变量!!!!!!!
             # 全局变量不会存在被释放!!!!! 在任意位置都可以使用
def func2():
    global num  #(global从局部修改全局变量的修改关键字)
    num=40
    print(num)
if __name__ == '__main__':
    func1()
    func2()
    print(g_num)

3.1缺省参数:定义函数时,给某个参数指定一个默认值,具有默认值的参数 说明 : • 调用函数时,如果没有传入缺省参数的 值,则使用默认值 • 将常见的值设置为参数的缺省值,从而 简化函数的调用
# 缺省参数 不传入值   就会使用默认值
# 需求,讲age和sex变为缺省参数,age的默认值为18,sex默认值为保密
def stu_info(name='牛马',age=18,sex='保密'):   #缺省参数(形参输入默认的值)  必须是在最后面
    print(f'name={name},age={age},sex={sex}')
stu_info()                       #实参不输入数据值就会默认形参给的数据值

def stu_info(age,name='牛马',sex='保密'):   #缺省参数(形参输入默认的值)  必须是在最后面
    print(f'name={name},age={age},sex={sex}')
stu_info(18)

def stu_info(age,name='牛马',sex='保密'):   #缺省参数(形参输入默认的值)  必须是在最后面
    print(f'name={name},age={age},sex={sex}')
stu_info(18,'小小牛马','男')         #在实参输入数据值就会显示输入的值,不会显示默认值

3.2多值参数:如果一个函数能够处理的参数个数是不确定的, 可以考虑使用多值参数
# 需求1.定义一个函数 sum ,可以接受的 任意多个整数
# 2.功能要求:将传递的 所有数字累加,并返回累加结果
def sum(*z):       #以前是用range(来实现n+1次数)  多值参数可以用*args后面跟普通参数
    print(type(z),z)
    n=0
    for i in z:
        n+=i
    return n
print(sum(3,5,1))
print('_'*50)
def func1(a,*args,sex='男',**nm):    #参数顺序是不能弄反的   (**nm)两个星号会出现字典形式, 有键有值
    print(a)
    print(args)
    print(sex)
    print(nm)
#调用函数只传位置参数!!!!!!!!
func1(1)   #后面两个默认
print('*'*50)
# 调用函数传入位置参数和多值参数!!!!
func1(1,2,3,4,5)  #最后一个是默认
print('+'*50)
# 调用函数输入 位置函数,多值函数,默认函数!!!!!!!!
func1(1,2,3,4,5,sex='小牛马')






#range  n+1求合方式!!!!! 跟参数无关
# def sum1():
#     a=0
#     for i in range(a+1):
#         a+=i
#
#         print(a)
#     return a
# print(sum1())

4.元组拆包的方式:在元组变量前,增加一个 *
def sum(**z):   #定义函数*星号叫组包    #以前是用range(来实现n+1次数)  多省参数可以用*args后面跟普通参数
    print(type(z),z)
    # n=0
    # for i in z:
    #     n+=i
    # return n
    return my_001
my_list=[1,3,5]
my_tuple=(2,4,6)
my_001={'name':'11','age':'11'}


#方法:使用(*)后面跟(拆开的包名)对元组或者列表进行拆包!!!!!
print(sum(**my_001))     #调用函数*星号叫拆包!!!!!!!!!


print('*'*50)     #这是隔离符

def nb(a,b,c):
    print(a)
    print(b)
    print(c)
print(nb(*my_tuple))     #调用函数*星号叫拆包!!!!!!!

5.匿名函数: 用 lambda 关键字创建的简化型函数, 不同于使用 def 声明的函数, 匿名 函数没有函数名称 l 匿名函数能接收任何数量的参数, 但只能返回一个表达式的值

sum = lambda arg1, arg2: arg1 + arg2 # 调用sum函数 print("result=", sum(10, 20)) # result= 30 print("result=", sum(20, 20)) # result= 40

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

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

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