python scatter参数详解_Python函数详解一(函数参数、变量作用域)

0e9989b0f117fce225ae779670ccfc31.png

Python函数

函数是python程序的重要组成部分。所谓函数就是实现某一特定功能的代码段,可重复使用,提高了代码的利用率。

python除了可以直接使用内置函数,还支持自定义函数。

定义函数

使用 def 关键字,格式如下:

def函数名(参数列表):函数体

函数的返回值

函数的返回值用return语句返回,函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回。

如果没有返回值,函数执行完毕后也会返回结果,只是结果为None。

函数参数详解

1.位置参数:

调用的时候必须传值,有几个就按顺序传几个值

示例

def area(length, width):    return 2 * (length + width)# 调用函数时,必须传递2个参数,否则会引发错误print(area(10,3))

2.默认参数

定义时给出默认值,调用的时候可以不传参,使用默认值

默认参数好处是:如果一个函数有20多个参数,如果使用默认参数,在调用的时候只需要传递某些参数(注意传参数名)就可以了。

示例

def student(name,age=10,city="Beijing"):    print("姓名:{},年龄:{},城市:{}".format(name,age,city))#调用方式一:student("赵四")#调用方式二:student("张三",15,"Shanghai")#调用方式三:student("李明",12)#调用方式四:student("李明",city="Tianjin")

1.既有位置参数又有默认参数,位置参数在前,默认参数在后。

2.多个默认参数时,调用的时候,既可以按顺序提供默认参数,也可以不按顺序提供部分默认参数。 当不按顺序提供部分默认参数时,需要传入参数名(见调用方式四)。

3.可变参数

可以传入任意个参数,传入的参数被组装为一个tuple。

示例

def sum(*num):    sum=0    for i in num:        sum=sum+i    return sum#调用方式一:sum(1,2,3)# 调用方式二:num = [1,2,3]sum(*num)

4.关键字参数

传入任意个含参数名的参数,这些关键字参数被组装为一个dict。

示例

def person(**kw):    for key in kw:        print("{}:{}".format(key,kw[key]))# 调用方式一:person(name="John",age=15)# 调用方式二:p={"name":"Alice","city":"Beijing"}person(**p)

5.命名关键字参数

对于关键字参数,函数调用的时候可以传入任意个不受参数名限制的关键字参数。但如果想必须传入某个名字的关键字参数,就可以用命名关键字参数。如上例中的person()函数,如果必须传入名为age的关键字参数,可以写成如下形式:

def person(name, *, age):    print("name={},age={}".format(name,age))# 调用方式:person("John", age=15)

命名关键字参数又和位置参数不同,命名关键字参数必须传入参数名。如果没有传入参数名,调用将报错。如果上面例子的调用方式写成 person("John", 15) 将报错

如果既有可变参数,又有命名关键字参数,参数顺序为:可变参数,命名关键字参数,并且命名关键字参数前不需*

def person(name, *args, age):    print(name,args,age)

python中五种参数可以组合使用,参数的定义顺序必须是:位置参数、默认参数、可变参数、命名关键字参数和关键字参数。

67944d11b072473c0574b2947b6d54af.png

变量的作用域

局部变量

局部变量:在函数中定义的变量,只在函数内部起作用。

如果想让局部变量在函数外起作用,要声明为全局变量,需要使用global关键字来声明。

全局变量

全局变量:在模块层次中定义的变量,作用范围在整个模块。

1.全局变量的作用范围仅限于单个模块文件内。

2.如果函数内定义的局部变量和全局变量同名,函数在使用该变量的时候会优先使用局部变量。

示例

先定义一个全局变量,由于函数内部没有定义同名变量,所以调用的时候使用的是全局变量的值

var=123    #全局变量def func():    print(var)# 调用函数func()    #123

现在在函数内部定义一个同名变量,可以看到函数在调用的时候优先使用的是自己内部的变量,而在函数外部使用的是全局变量的值

var=123#全局变量def func():var=45#局部变量print(var)# 调用函数func()    #45print(var)    #123

现在我们把函数内的变量声明为全局变量,可以看到变量var在函数外部也起作用了

def func():global varvar=45#局部变量print(var)# 调用函数func()    #45print(var)    #45
Python基础篇目录

Python基础之数据类型详解

Python之pip使用详解|附第三方库安装总结

Python编程之Pycharm快速学习

你熟悉Python的代码规范吗?如何一键实现代码排版

快速入门 Python 数据库操作

Python模块知识全解析

快速入门Python文件操作

Python字符串操作大全

关于Python循环,看这一篇就够了

关于Python异常处理,你需要了解的知识点

f38bee068b4f8e5f701ac5df1dd1aba8.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值