Python之函数

函数

如果在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数.

定义函数的格式

def 函数名(参数1,参数2,...,参数n):     

      函数体(语句块)

注意:

1)函数名的命名规则要符合python中的命名要求:一般用小写字母和单下划线、数字等组合 匈牙利命名法(sUserName),  驼峰式大小写(userName), 帕斯卡命名法(UserName)

2)def是定义函数的关键词,这个简写来自英文单词define

3)函数名后面是圆括号,括号里面,可以有参数列表,也可以没有参数

4)千万不要忘记了括号后面的冒号

5)函数体(语句块),相对于def缩进,按照python习惯,缩进四个空格

6)定义一个什么事也不做的空函数,可以用 pass 语句  

7)pass 可以用来作为占位符,还没想好怎么写函数的代码,就可以先放一个 pass ,让代码能运行起来

8)所谓“返回值”,就是程序中函数完成一件事情后,最后给调用者的结果.  没有返回值,默认返回None

函数的优势

从理论上说,不用函数,也能够编程,我们在前面已经写了程序,就没有写函数,当然,用python的内建函数姑且不算了。现在之所以使用函数,主要是: 1. 降低编程的难度(分而治之的思想) 2. 代码重用。避免了重复劳动,提供了工作效率。

局部变量

 局部变量,就是在函数内部定义的变量  不同的函数,可以定义相同的名字的局部变量,但是各用个的不会产生影响  局部变量的作用,为了临时保存数据需要在函数中定义变量来进行存储,这就是它的作用

# 代码
def saveMoney(money):
    allMoney = 100
    print("存钱前金额:", allMoney)
    allMoney += money
    print("存钱后金额:", allMoney)


def viewMoney():
    allMoney = 500
    print("余额:", allMoney)


if __name__ == "__main__":
    saveMoney(66)
    viewMoney()

# 运行结果
存钱前金额: 100
存钱后金额: 166
余额: 500

全局变量

如果一个变量,既能在一个函数中使用,也能在其他的函数中使用,这样的变量就是全局变量。

 在函数外边定义的变量叫做全局变量  

全局变量能够在所有的函数中进行访问  

如果在函数中修改全局变量,那么就需要使用global进行声明,否则出错  

如果全局变量的名字和局部变量的名字相同,那么使用的是局部变量的      小技巧: 强龙不压地头蛇(就近原则)

不使用global声明全局变量时不能修改全局变量?

global的本质是声明可以修改全局变量的指向, 即变量可以指向新的数据。

1). 不可变类型的全局变量: 指向的数据不能修改, 不使用global时无法修改全局变量。

2). 可变类型的全局变量: 指向的数据可以修改, 不使用global时可以修改全局变量。

# 代码
allMoney = 100
def saveMoney(money):
    global  allMoney
    print("存钱前金额:", allMoney)
    allMoney += money
    print("存钱后金额:", allMoney)


def viewMoney():
    print("余额:", allMoney)


if __name__ == "__main__":
    saveMoney(66)
    viewMoney()

# 运行结果
存钱前金额: 100
存钱后金额: 166
余额: 166

注意:全局变量alloney为不可变数据类型,且有修改allMoney += money,必须global声明

形参与实参

定义时小括号中的参数,用来接收参数用的,称为 “形参”

调用时小括号中的参数,用来传递给函数用的,称为 “实参”

def add(x, y):  #a,b为形参
    """
    求两数之和
    :param x:
    :param y:
    :return:
    """
    return x + y
print(add(1, 2)) #1, 2为实参

参数检查

调用函数时,如果参数个数不对,Python 解释器会自动检查出来,并抛出 TypeError;    

如果参数类型不对,Python 解释器就无法帮我们检查; 

数据类型检查可以用内置函数 isinstance 实现。

参数传递(默认参数)

默认参数可以降低调用函数的难度。 

默认参数注意事项: 有多个参数时,变化大放前面,变化小的放后面; 必选参数在前,默认参数在后

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值