博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python-函数
阅读量:6148 次
发布时间:2019-06-21

本文共 1423 字,大约阅读时间需要 4 分钟。

一.定义函数

def 函数名([形式参数]):

    函数体                    函数要执行的程序
    return 返回值        如果没有return返回,默认返回值为None;

函数名([实参])

注意:有返回值 的函数,必须print fun(),可以打印出返回值;

二.调用函数

内置函数(BIF,built-in function)

min,max,sum,zip,abs,
int,float,str,list,tuple,bool,

函数实质上是一个变量;函数名是一个指向函数对象的引用,完全可以把函数赋值给一个变量,相当于给这个函数起了个别名;

In [59]: a = abs         a变量指向abs函数
In [60]: a(-1)              可以通过a实现abs的功能;
Out[60]: 1
In [61]: abs(-1)
Out[61]: 1

三.空函数:

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

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

      def nofunc():

                pass

四.函数的返回值
-  在函数中,一旦遇到return关键字,函数就执行结束;
-  函数返回值只能返回一个,如果想间接返回多个值,返回值实际是一个元组;

-  函数执行完毕也没有 return 语句时,自动 return None

四.函数的参数传值

默认参数注意事项:

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

- 有多个参数时,变化大放前面,变化小的放后面;

- 必选参数在前,默认参数在后

1. 必选参数:形参与实参的个数必须相同,否则直接报错;
2. 默认参数:在定义函数时,给形参一个默认值;

小测试:

先定义一个函数,传入一个 list,添加一个END 再返回

3.可变参数:传入的参数个数是可变的,可以是1-n个,也可以是0个;一般实参中用*args来表示可变参数;
    args接收的是一个元组(tuple);

4.关键字参数:

- 关键字参数允许你传入 0 个或任意个含参数名的参数;

- 这些关键字参数在函数内部自动组装为一个 dict;

- 关键字参数用**kwargs

多个关键字需加上key值

解包

把一个序列元素依次传入带有可变参数的函数时,可通过fun(*l)来解包

把一个字典元素依次传入带有关键字参数的函数时,可通过fun(**d)来解包

5.参数组合

- 参数组合是指可以必选参数、 默认参数、 可变参数和关键字参数一起使用。

- 参数定义的顺序必须是:必选参数、 默认参数、可变参数和关键字参数。

6.参数总结

- 必选参数

- 默认参数:默认参数一定要用不可变对象
- 可变参数:*args 是可变参数,args 接收的是一个 tuple
- 关键字参数:**kw 是关键字参数,kw 接收的是一个dict
- 对于任意函数,都可以通过类似 func(*args, **kw) 的形式调用它

五.变量的作用域

1.全局参数:在函数外定义的函数
2.局部参数:在函数内部定义的函数;
- global:声明局部变量为全局变量;
global name
name = "westos"

六.帮助文件

帮助文件结尾为__doc__,可以自行编写


      本文转自一百个小排 51CTO博客,原文链接:http://blog.51cto.com/anfishr/1960929,如需转载请自行联系原作者

你可能感兴趣的文章
分布式事务最终一致性常用方案
查看>>
Exchange 2013 PowerShell配置文件
查看>>
JavaAPI详解系列(1):String类(1)
查看>>
HTML条件注释判断IE<!--[if IE]><!--[if lt IE 9]>
查看>>
发布和逸出-构造过程中使this引用逸出
查看>>
Oracle执行计划发生过变化的SQL语句脚本
查看>>
使用SanLock建立简单的HA服务
查看>>
发现一个叫阿尔法城的小站(以后此贴为我记录日常常用网址的帖子了)
查看>>
Subversion使用Redmine帐户验证简单应用、高级应用以及优化
查看>>
Javascript Ajax 异步请求
查看>>
DBCP连接池
查看>>
cannot run programing "db2"
查看>>
mysql做主从relay-log问题
查看>>
Docker镜像与容器命令
查看>>
批量删除oracle中以相同类型字母开头的表
查看>>
Java基础学习总结(4)——对象转型
查看>>
BZOJ3239Discrete Logging——BSGS
查看>>
SpringMVC权限管理
查看>>
spring 整合 redis 配置
查看>>
redhat6.1下chrome的安装
查看>>