函数

目录

一、函数定义

二、函数编写说明文档

三、函数的返回值

四、函数参数

1、位置参数与关键字参数

2、默认参数

3、可变长参数

4、可变关键字参数

五、作用域

1、全局变量

2、局部变量

3、global关键字

4、内嵌函数与 nonlocal关键字

5、闭包

6、递归

7、lambda匿名函数

一、函数定义

In [17]:
def info_1(a,b,c):print(a)print(b)print(c)
In [20]:
info_1(1,2,3) # 赋值调用,这样就可以重复调用1
2
3

二、函数编写说明文档

def test(a,b):  # test的函数解释就是‘用来实现两个数的求和’'''用来实现两个数的求和'''print(a+b)

三、函数的返回值

def abs_1(x):          # return返回一个值,下面的程序就不会执行if x >=0:return(x)else:return(-x)
In [32]:
abs_1(-444)
Out[32]:
444

四、函数参数

1、位置参数与关键字参数

# 位置参数
In [53]:
def test(a,b,c):print(a)print(b)print(c)In [54]:
test(1,2,3)  # 1,2,3分别对应a,b,c1
2
3
# 关键字参数
In [57]:
test(a=2,b=1,c=3)2
1
3

关键字参数必须放在位置参数后⾯

使⽤名称指定的参数,有助于澄清各个参数的作⽤。这样,函数调⽤不再像下⾯这样怪异⽽神秘。
使⽤关键字参数使每个参数的作⽤清晰明了。另外,参数的顺序错了也没关系。
另外,关键字参数最⼤的优点还在于可以指定默认值。

2、默认参数

def test(a,b,c=1):print(a)print(b)print(c)In [64]:
test(b=1,a=2) # c=1是默认参数2
1
1

必选参数在前,默认参数在后,否则会报错。
默认参数降低了函数调⽤的难度,⽽⼀旦需要更复杂的调⽤时,⼜可以传递更多的参数来实现。⽆
论是简单调⽤还是复杂调⽤,函数只需要定义⼀个。

3、可变长参数

in[76]:
def sum_2(*x_list):  # 在参数前面加个*n=0for i in x_list:n+=ireturn nIn [77]:
sum_2(3,4,5,1,2,3,4,5,1,2,3)Out[77]:
33

4、可变关键字参数

⼀个星号不会收集关键字参数,要收集关键字参数,可使⽤两个星号。

⼀个星号就是打包成元组传⼊进来,两个星号就是打包成字典传⼊进来。

In[79]:
def test(**x): # 在参数前加两个*return xIn [80]:
test(a=1,b=2,c=3,d=4)   Out[80]:
{'a': 1, 'b': 2, 'c': 3, 'd': 4}

五、作用域

1、全局变量和局部变量

# 全局作用域
a=1# 局部作用域  n= 0即为局部变量
def test_1(*args):n=0for i in args:n+=i*ireturn n

在函数外边定义的变量叫做全局变量
全局变量能够在所有的函数中进⾏访问
如果在函数中修改全局变量,那么就需要使⽤global进⾏声明,否则出错
如果全局变量的名字和局部变量的名字相同,那么使⽤的是局部变量的,⼩技巧:强⻰不压地头蛇

2、global关键字

# global关键字,全局变量不可变时使用
a=100
def test5():global a  # 调用全局变量a+=1print(a)
test5()

3、内嵌函数与 nonlocal关键字

def outer():num = 10def inner():nonlocal num    # nonlocal关键字声明num = 100print(num)inner()print(num)
outer()100
100

4、闭包

In [111]:
def funcX(x):def funcY(y):return x *yreturn funcYIn [112]:
funcX(1)(2)Out[112]:
2

5、递归

在程序上,递归实质上是函数调⽤⾃身的⾏为。

# 递归
def caljie(n):if n>1:result = n* caljie(n-1)else:result=1return resultIn [131]:
caljie(3)
Out[131]:
6

6、lambda匿名函数

①基本语法

⽤lambda关键词能创建⼩型匿名函数,这种函数得名于省略了⽤def声明函数的标准步骤。
lambda函数的语法只包含⼀个语句。

In [148]:
f = lambda x:x*2 if x>5 else x/2    # else不能省略 可用else none
f(3)Out[148]:
1.5

②使用场景

函数作为参数进⾏传递

Lambda函数能接收任何数量的参数,但只能返回⼀个表达式的值
匿名函数不能直接调⽤print,因为lambda需要⼀个表达式

把函数功能屏蔽

import timetime.sleep(10) # 让程序休眠10秒
print('------zZZ-------')

③作为高级函数的参数

a、map

a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]In [152]:
list(map(lambda x:x*2+10, a))Out[152]:
[12, 14, 16, 18, 20, 22, 24, 26, 28, 30]

b、filter

In[153]:
def f(x):if x % 2==0:  #  函数⽤于过滤序列return xlist(filter(f,a))Out[153]:
[2, 4, 6, 8, 10]

c、sorted

In[159]:
sorted(a, key=lambda x: abs(5 - x))   #对所有可迭代的对象进⾏排序操作。Out[159]:
[5, 6, 4, 4, 3, 3, 2, 8, 2, 1, 1, 10, 22, 55, 77]

学习python内一般函数知识相关推荐

  1. python学习总结----内置函数及数据持久化

    python学习总结----内置函数及数据持久化 抽象基类(了解)- 说明:- 抽象基类就是为了统一接口而存在的- 它不能进行实例化- 继承自抽象类的子类必须实现抽象基类的抽象方法 - 示例:from ...

  2. Python学习(14)--内置函数

    Python学习(14)--内置函数 1.Python内置函数 在Python中有很多的内置函数供我们调用,熟练的使用这些内置函数可以让编写代码时事半功倍,所谓内置函数就是那些Python已经预定义并 ...

  3. python 内置函数转list_python学习笔记11-python内置函数

    python学习笔记11-python内置函数 一.查看python的函数介绍: 二.python内置函数 1.abs获取绝对值: 通过python官网查看absabs(x) Return the a ...

  4. python内置函数表_python学习系列--python内置函数(一)

    先列出所有的python内置函数,可以看到还是挺多的. abs()        求给定数的绝对值. all()          传入一个列表,只有当列表中所有元素都是真时,该函数返回真. any( ...

  5. python内置函数用来返回列表、元组、字典_python程序设计第一章基础知识 题库及选解...

    由于学校的python是笔试,所以找了份感觉比较好的题库刷了下其中前八章的填空和判断,附上选解.各章链接如下 填空 1. Python安装扩展库常用的是()工具.(pip) 2. Python标准库m ...

  6. 8个超好用的Python内置函数,提升效率必备!

    python中有许多内置函数,不像print那么广为人知,但它们却异常的强大,用好了可以大大提高代码效率. 这次来梳理下8个好用的python内置函数. 1.set() 当需要对一个列表进行去重操作的 ...

  7. Python内置函数any()、map()组合运用案例一则

    Python内置函数any()用来测试某个可迭代对象中是否所有对象都等价于True,map()用来把一个函数映射到一个或多个可迭代对象上. 问题描述:测试一个字符串中是否包含指定列表中的某个字符串作为 ...

  8. Python内置函数int()高级用法

    int()函数常用来把其他类型转换为整数,例如: >>> int(3.2) 3 >>> int(1/3) 0 其实,int是Python内置类型之一,之所以能够当作 ...

  9. python内置函数可以返回列表元组_Python内置函数()可以返回列表、元组、字典、集合、字符串以及range对象中元素个数....

    Python内置函数()可以返回列表.元组.字典.集合.字符串以及range对象中元素个数. 青岛远洋运输有限公司冷聚吉船长被评为全国十佳海员.()A:错B:对 有源逆变是将直流电逆变成其它频率的交流 ...

  10. python基础知识资料-学习Python列表的基础知识汇总

    千里之行,始于足下.要练成一双洞悉一切的眼睛,还是得先把基本功扎扎实实地学好.今天,本喵带大家仔细温习一下Python的列表.温故而知新,不亦说乎. 当然,温习的同时也要发散思考,因为有些看似无关紧要 ...

最新文章

  1. 敏捷产品Backlog需求管理
  2. 原来matplotlib 散点图可以这样
  3. 中断锁与信号量的一种使用场景
  4. auto-sklearn手册
  5. AB1601 IO口反应延时的问题
  6. python在统计专业的应用_Python:使用Counter进行计数统计
  7. 【集合】JDK 7 HashMap集合的ConcurrentModificationException 原因
  8. mosquitto查看订阅记录_Mosquitto\Client
  9. 解决Linux下Tomcat日志目录下的catalina.log日志文件过大的问题
  10. Dev-cpp5.11下载
  11. 手机芯片命名规则详解
  12. 从asp空间下载apk文件
  13. nginx: [emerg] CreateFile() “D:\项目资料\nginx-1.12.2/conf/nginx.conf“ failed (1113: No mapping for t
  14. 知识库构建前沿:自动和半自动知识提取
  15. 解读 TiDB Server
  16. python 解决 mismatch问题
  17. Adobe软件试用下载
  18. APP流量变现,SDK聚合技术流量变现
  19. [LOJ#6617][THUPC2019]摆家具(矩阵乘法 + 子集和变换)
  20. [linux学习]centos下mysql的简单使用教程

热门文章

  1. 【安全牛学习笔记】初识sql注入漏洞原理
  2. Chrome升级 76.0.3809.87后 GreenChrome无法使用的办法
  3. [Swift]在Swift中实现自增(++)、自减(--)运算符:利用extension扩展Int类
  4. 【bzoj4897】[Thu Summer Camp2016]成绩单 区间dp
  5. 80.共享内存实现进程通信
  6. 自己写的一个Js小插件
  7. 源码编译安装screen
  8. 各个浏览器兼容性问题积累
  9. git clone权限被拒绝
  10. micro hdmi引脚定义义_系,意、义、意义,有理数的几何解释,合理存在的数(有理数)...