Python函数

参数

定义函数时位置参数可以带默认值的参数,如果不知道参数的具体数量也可以设置可变参数。
可变参数,在调用函数时可以传入任意数量的参数。

调用函数时按参数的传递方式,参数分为位置参数和关键字参数。
位置参数,调用函数时按定义函数时的参数次序传递参数。
关键字参数,调用函数时指定函数名称来传递参数,关键字参数可以不按顺序传入。
 

# 位置参数
def cal_volume(length, width, height=2):          # height为带默认值的位置参数
    """计算立方体的体积"""
    v = length * width * height
    return v

volume = cal_volume(2, 3)
print('volume:', volume)
volume = cal_volume(width=3, height=2, length=2)  # 关键字参数
print('volume:', volume)

# 可变参数
def cal_perimeter(*sides):
    """计算平面图形的周长"""
    p = 0
    for i in sides:  # 可变参数sides为元组
        p += i
    return p

perimeter = cal_perimeter(1, 2, 3, 4, 5)
print('perimeter:', perimeter)

局部变量

函数内定义的变量为局部变量,作用范围为函数内。

n = 1          # 全局变量
def add1(n):
    n = n + 1  # 等号左侧n是新的局部变量,不同于函数外的全局变量n,此处加法不会修改函数外的变量n,\
               # 也不会修改参数变量n,等号右侧n是函数的形式参数
               # 定义函数时函数局部变量与参数变量名称相同容易让人产生困惑,两者不要同名
    return n

def add2(n):
    m = n + 1  # 局部变量名不要与参数变量同名
    return m

result1 = add1(n)
result2 = add2(n)
print(result1, result2)
print('n =', n)  # n未被修改

def add3(m):
    global n     # 使用global声明n为全局变量,可以在函数内修改函数外的全局变量
    n = m + 1
    return n

result3 = add3(n)
print(result3)
print('n =', n)  # n被修改

全局变量

在函数外部定义的变量为全局变量,作用范围为整个程序文件。

尽量不要使用全局变量,因为在任何地方都可以访问和修改全局变量。如果全局变量在程序执行过程中一直在变化,当全局变量的值有错误时,需要找到所有访问过全局变量的语句以确定错误来源于哪里,不便于程序的维护。

使用函数参数和返回值来实现不同部分之间的信息传递。

在必须使用全局变量的时候,可以把全局变量设置为常量,放在程序最顶部,便于程序的维护。

不要在函数内用global声明来访问全局常量。

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值