Python3入门基础:第十一篇(函数)

函数的意义:可以将一段重复性的代码封装成一个函数,以后在调用相同代码时,只需调用这个函数就可以。应用函数可以方便代码的修改以及其他维护。

一.函数定义和调用:

1.定义函数:语法是使用def:

def 函数名(参数:可以为空):
    代码块
#示例
def greet():
    print("hello python")

2.调用函数:语法是使用这个函数的名字,后面再给个圆括号:

函数名(参数,可以为空)
#示例
greet()

#完整版
def greet():
    print("hello python")
greet()

打印结果:
hello python

3.函数参数:函数可以传递参数进去给函数

def add(a,b):
    print(a+b)
add(3,4)
打印结果:
7
形参:就是在定义函数的时候指定的参数 如示例中的a,b
实参:就是在调用函数的时候传递进去的参数  如示例中的3,4
位置参数:位置参数就是按照形参中给定的参数的顺序
关键字参数:按照参数的名字来传递参数
add(a=3,b=4)或add(b=4,a=3)
混合参数:传递参数时可以即包括位置参数也可以包括关键字参数
add(3,b=4)
*注*:位置参数必须在关键字参数前面
add(4,a=3)该语法也是错误的
*args和**kwargs:前者是缺省位置参数,将传递的参数存储在一个元组当中;后者是缺省关键字参数,将传递的参数存储在一个字典当中

def add(*args):
print("#"*30)
print(args)
print("#"*30)
result = 0
for arg in args:
    result += arg
print(result)

add(1,2,3,4,5,6,7,8,9)
打印结果:
##############################
(1, 2, 3, 4, 5, 6, 7, 8, 9)
##############################
45


def add(**kwargs):
    print("#"*30)
    print(kwargs)
    print("#"*30)
add(a=1,b=2,c=3,d=4)
打印结果:
##############################
{'d': 4, 'a': 1, 'b': 2, 'c': 3}
##############################


def add(*args,**kwargs):   #注:该处也必须是位置参数在关键字参数前边
    print("#"*30)
    print(args)
    print(kwargs)
    print("#"*30)
add(1,2,c=3,d=4)
打印结果:
##############################
(1, 2)
{'d': 4, 'c': 3}
##############################

  默认参数
  def greet1(username,age=18):
    print(username)
    print(age)
greet1('nicai')

def greet2(username,age=18):
    print(username)
    print(age)
greet1('nicai',20)

打印结果:
nicai
18
nicai
20


注:默认参数只能在其他参数后面如:def greet2(age=18,username)语法错误
如果默认参数和缺省的位置参数和关键字参数组合在一起,则默认参数要放在缺省你参数前面  
如:def  function(默认参数,*args,**kwargs)

4.函数返回值:

def add(a,b):
    return  a + b
result = add(1,2)
print(result)
打印结果:
3

二.函数中变量的作用域:

1.局部变量:函数中的变量,不能在外面使用。

在这里插入图片描述在这里插入图片描述

2.全局变量:在函数或某个代码块外面定义的变量,可以在函数中进行使用。

在这里插入图片描述
在这里插入图片描述

3.global关键字:如果想在函数或某个代码块中修改全局变量,那么应该使用global关键字。

在这里插入图片描述
在这里插入图片描述

4.列表和字典当作全局变量:

在这里插入图片描述

在这里插入图片描述
注:如果在函数中想要修改全局变量的persons的指向(记为有等号?),那么就使用global关键字
如果在函数中只想对全局变量中的元素进行增删改查,可以不需要global关键字

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值