Python函数

1.函数的定义和调用

函数是指在开发程序时,为了提高编写的效率以及代码的重用,把具有独立功能的代码块组织为一个小模块。

# 定义函数
    def 函数名():
        代码
# 定义一个函数,能够完成打印信息的功能
def printInfo():
    print( '----------------------')
    print('  Hello World  ')
    print( '----------------------')
​
# 调用函数很简单,通过 函数名() 即可完成调用,定义完函数后,函数是不会自动执行的,需要调用它才可以
 printInfo()

为了让一个函数更通用,在定义函数的时候可以给函数设置参数,接受数据

# 定义带有参数的函数
    def add2num(a, b):
        c = a+b
        print(c)
# 调用带有参数的函数,在小括号里传递数据
    add2num(11, 22) 
# 调用函数时参数的顺序
def test(a,b):
    print(a,b)
test(1,2)       -> 1 2
test(b=1,a=2)       -> 2 1
​
# 缺省参数(调用函数时,缺省参数的值如果没有传入,则取默认值。带有默认值的参数一定要位于参数列表的最后面。)
# 定义一个printinfo函数
def printinfo( name, age = 35 ):
   print("Name: ", name)
   print("Age ", age)
    
# 调用printinfo函数
printinfo(name="miki" )
printinfo( age=9,name="miki" )
# 以上实例输出结果:
Name:  miki
Age  35
Name:  miki
Age  9
​
# 不定长参数(有时可能需要一个函数能处理比声明时更多的参数,这些参数叫做不定长参数,声明时不会命名。)
    def functionname([formal_args,] *args, **kwargs):
       "函数_文档字符串"
       function_suite
       return [expression]
# 加了星号(*)的变量args会存放所有未命名的变量参数,args为元组;而加**的变量kwargs会存放命名参数,即形如key=value的参数,kwargs为字典。
​
# 定义一个fun函数
def fun(a, b, *args, **kwargs):
    ...
# 调用fun函数
fun(1, 2, 3, 4, 5, m=6, n=7, p=8)  #注意传递的参数对应
a = 1
b = 2
args = (3, 4, 5)
kwargs: p = 8,m = 6,n = 7
​
# 引用传参
# 可变类型与不可变类型的变量分别作为函数参数时,Python中函数参数是引用传递(注意不是值传递)。对于不可变类型,因变量不能修改,所以运算不会影响到变量自身;而对于可变类型来说,函数体中的运算有可能会更改传入的参数变量。
​

2.函数返回值

返回值是程序中函数完成一件事情后,最后给调用者的结果。想要在函数中把结果返回给调用者,需要在函数中使用return关键字。

def add2num(a, b):
    c = a+b
    return c

按照函数有没有参数,有没有返回值,可以组合4种情况:无参数,无返回值;无参数,有返回值;有参数,无返回值;有参数,有返回值。

3.函数的嵌套调用

一个函数里面又调用了另外一个函数,这就是所谓的函数嵌套调用

# 定义一个testB函数
def testB():
    print('---- testB start----')
    print('......')
    print('---- testB end----')
# 定义一个testA函数
def testA():
    print('---- testA start----')
    testB()
    print('---- testA end----')
# 调用testA函数
testA()
    ---- testA start----
    ---- testB start----
    ......
    ---- testB end----
    ---- testA end----

4.局部变量和全局变量

局部变量,就是在函数内部定义的变量。不同的函数,可以定义相同的名字的局部变量,不会产生影响。局部变量是为了在函数中临时保存数据而定义的。

全局变量是指在函数外面定义的变量,能够在所有的函数中进行访问。如果在函数中修改全局变量,那么就需要使用global进行声明。如果全局变量的名字和局部变量的名字相同,那么使用的是局部变量的

#全局变量
a = 100
def test1():
    global a 
    a = 300
    print(a)    # a=300
def test2():
    print(a)    # a=100

对于不可变类型的全局变量来说,因其指向的数据不能修改,所以不使用global时无法修改全局变量。

对于可变类型的全局变量来说,因其指向的数据可以修改,所以不使用global时也可修改全局变量。

list=[1,2]
def func():
    list.append(3)
    print(list)
#调用func函数的结果
[1,2,3]
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

特亿安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值