0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python3函数知识大全包括定义,调用,参数,变量等详细举例说明

马哥Linux运维 来源:未知 作者:易水寒 2018-06-02 10:33 次阅读

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。Python提供了许多内建函数,比如print()。但也可以自己创建函数,这被叫做用户自定义函数。

Python3函数知识大全包括定义,调用,参数,变量等详细举例说明

1.函数的定义:

你可以定义一个由自己想要功能的函数,以下是简单的规则:

函数代码块以def关键词开头,后接函数标识符名称和圆括号()。

任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。

函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。

函数内容以冒号起始,并且缩进。

pass关键字,代表什么都不干

exit(num) 强行退出(num:是一个数字,显示为退出码)

return [表达式]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

语法

def functionname( parameters ): function_suite return [expression]

默认情况下,参数值和参数名称是按函数声明中定义的的顺序匹配起来的。

举例1:

def add(x, y):print(“x = {0}”.format(x))print(“x = {0}”.format(x))print(“x + y = {0}”.format(x+y))return x+y

举例2:

#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2018/4/14 20:31# @Author : Feng Xiaoqing# @File : demo1.py# @Function: -----------def f(x,l=[]): for i in range(x): l.append(i*i) print(l)# f(2) = f(2, l=[])f(2)# 结果:[0, 1]f(3,[3,2,1])# 结果: [3, 2, 1, 0, 1, 4]f(x=3, l=[])# 结果: [0, 1, 4]

运行结果:

[0, 1][3, 2, 1, 0, 1, 4][0, 1, 4]

2.函数的调用

定义一个函数只给了函数一个名称,指定了函数里包含的参数,和代码块结构。

这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从Python提示符执行。

如下实例调用了add()函数:

#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2018/4/15 21:01# @Author : Feng Xiaoqing# @File : demo2.py# @Function: -----------# 自定义加法函数add()def add(x,y): print("{0} + {1} = {2}".format(x,y,x+y)) return print("finished") #在return后不会执行这条语句# 调用函数,计算2+3的得数add(2,3)

运行结果:

2 + 3 = 5

3.函数的参数

形式参数和实际参数

在定义函数时,函数名后面,括号中的变量名称叫做形式参数,或者称为"形参"

在调用函数时,函数名后面,括号中的变量名称叫做实际参数,或者称为"实参"

def fun(x,y): //形参 print(x + y) fun(1,2) //实参 3 fun('a','b') ab

函数默认参数:

缺省参数(默认参数)

def fun(x,y=100) print x,y#调用:fun(1,2)fun(1)

定义:

#!/usr/bin/env python# -*- coding: utf-8 -*-def fun(x=2,y=3): print x+y

调用:

fun()#结果:5fun(23)#结果26fun(11,22)#结果:33

我们经常在看别人的代码中,经常出现def(*args, **kwargs)这样的表现形式:

*args 指的是:tuple (1, )**kwargs 指的是:dict {“k”: “v”}fun(*args, **keargs)fun(1, 2, 3, 4, 5, a=10, b=40)

4.函数的返回值

函数返回值:

函数被调用后会返回一个指定的值

函数调用后默认返回None

return返回值

返回值可以是任意类型

return执行后,函数终止

return与print区别

#!/usr/bin/env python# -*- coding:utf-8 -*-def fun(): print 'hello world' return 'ok' print 123fun()#结果hello world123None

5.函数的变量

局部变量和全局变量:

Python中的任何变量都有特定的作用域

在函数中定义的变量一般只能在该函数内部使用,这些只能在程序的特定部分使用的变量我们称之为局部变量

在一个文件顶部定义的变量可以供文件中的任何函数调用,这些可以为整个程序所使用的变量称为全局变量。

def fun(): x=100 print xfun()x = 100def fun(): global x //声明 x +=1 print xfun()print x

外部变量被改(x由100改为101):

x = 100def fun(): global x x += 1 print (x)fun()print (x)#结果101101

内部变量外部也可用:

#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2018/4/15 21:33# @Author : Feng Xiaoqing# @File : demo2.py# @Function: -----------x = 100def fun(): global x x +=1 global y y = 1 print(x)fun()print(x)print(y)#结果:1011011

统计程序中的变量,返回的是个字典

#!/usr/bin/env python# -*- coding:utf-8 -*-x = 100def fun(): x = 1 y = 1 print(locals())fun()print (locals())

结果:

{'y': 1, 'x': 1}{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x02FF6390>, '__spec__': None, '__annotations__': {}, '__builtins__': , '__file__': 'D:/PycharmProjects/PythonLive/untitled/day07/demo2.py', '__cached__': None, 'x': 100, 'fun': }

6.匿名函数

顾名思义就是没有名字的函数,那为什么要设立匿名函数,他有什么作用呢?lambda 函数是一种快速定义单行的最小函数,可以用在任何需要函数的地方

python 使用 lambda 来创建匿名函数。

lambda只是一个表达式,函数体比def简单很多。

lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。

lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。

虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。

语法

lambda函数的语法只包含一个语句,如下:

lambda [arg1 [,arg2,.....argn]]:expression

举例:

求两数的乘积:

常规写法:

def fun(x,y) return x*y

lambda版本写法:

r = lambda x,y:x*y

7.高阶函数

(1)map(f, list)

返回每个元素通过f计算完的value的list

map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。

举例:计算列表里值的平方

#!/usr/bin/env python# -*- coding:utf-8 -*-def f(x): return x*xfor i in map(f,[1,2,3,4,5,6,7]): print(i)

结果:

14916253649

(2)reduce(f,list)函数(求list中数的和)

reduce把一个函数作用在一个序列[x1, x2, x3...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:

举例:计算列表中所有数的和

#!/usr/bin/env python# -*- coding:utf-8 -*-from functools import reduce #导入reduce函数def f(x,y): return x+yprint(reduce(f,[1,2,3,4,5,6,7,8,9,10]))print(reduce(f,range(1,101)))#结果:555050

(3)filter()函数(过滤)

filter函数接收一个函数f和一个list,函数f的作用是对每个元素进行判断,返回True或者False,filter()根据判断结果自动过滤掉不符合条件的元素,返回符合要求的元素组成的list

filter(lamdba x: x%2 ==1, [1, 2, 3, 4, 5])

举例:计算list中小于7的数

#!/usr/bin/env python# -*- coding:utf-8 -*-for i in filter(lambda x:x<7, [1, 2, 3, 4, 5,40,8]):    print(i)#结果:12345

(4)sorted()函数(排序)

sorted(...) sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list

# sorted(iterable, key, reverse)# iterable 一个可迭代的对象# key 对什么进行排序# reverse bool类型,如果为true为反序, 默认为false# 返回值是一个list

举例:

#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2018/4/15 22:47# @Author : Feng Xiaoqing# @File : demo3.py# @Function: -----------m = dict(a=1, c=10, b=20, d=15)print(sorted(m.items(), key = lambda d:d[1],reverse = True)) #按value值倒序排列#结果:[('b', 20), ('d', 15), ('c', 10), ('a', 1)]

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    4327

    浏览量

    62571
  • 代码
    +关注

    关注

    30

    文章

    4779

    浏览量

    68522
  • python3
    +关注

    关注

    0

    文章

    18

    浏览量

    3897

原文标题:最全 Python3 函数知识点大全

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    一文详解python调用函数

    函数定义后,本身是不会自动执行的,只有在被调用后,函数才会被执行,得到相应的结果。但是在 Python 中我们要注意一个关键点,就是
    发表于 10-01 10:45 673次阅读

    python2和python3同时安装的详细步骤

    整理下python2和python3同时安装详细步骤希望对大家有帮助坑已踩过(亲测可用!!!)
    发表于 10-27 09:31

    安装python3的步骤

    我的只按照下面的链接到了安装python3的前一步,安装python3以及后面还没弄。文章参考链环境说明操作系统:macOS High Sierra这是我电脑系统的版本,理论上支持Mac的所有版本烧录代码到单片机安装sdccsd
    发表于 11-19 06:43

    举例说明如何使用TIME.SETUP() 中的新选项?

    很高兴看到现在我们可以在 TIME.SETUP() 中指定 NTP 服务器! 我搜索了文档,但我认为它还没有实现。 然后我在源代码中看到这个函数最多可以有 3参数。但是如果我在我的国家使用一个 NTP 服务器,时间会是正确的
    发表于 04-26 08:38

    python2与python3问题的分析

    这个问题困扰了我很久,也是在一次偶然的机会解决了。现在就与大家分享一下,对于又想用python2又想用python3的小伙伴可以看看。 其实,这个方法也是挺简单的。我使用的是python
    发表于 11-28 10:01 1046次阅读

    Python私有变量定义方法

    属性,如init , __import__或是file 。只有当文档有说明时使用,不要自己定义这类变量。其实,Python并没有真正的私有化支持,用下划线得到的也是伪私有,因此,在
    发表于 02-13 16:49 1664次阅读

    C语言程序设计教程课件之函数详细资料说明

    本文档详细介绍的是C语言程序设计教程课件之函数详细资料说明主要内容包括了:1.概述,2.函数
    发表于 02-28 10:35 3次下载
    C语言程序设计教程课件之<b class='flag-5'>函数</b>的<b class='flag-5'>详细</b>资料<b class='flag-5'>说明</b>

    C语言函数的实验详细资料说明

    实验目的和要求(1)掌握C语言函数定义方法、函数的声明及函数调用方法。(2)掌握函数实参和形
    发表于 12-06 08:00 4次下载
    C语言<b class='flag-5'>函数</b>的实验<b class='flag-5'>详细</b>资料<b class='flag-5'>说明</b>

    C语言教程之函数详细资料说明

    本文档的主要内容详细介绍的是C语言教程之函数详细资料说明包括了:1 函数概述 ,2 函 数
    发表于 03-21 15:39 9次下载
    C语言教程之<b class='flag-5'>函数</b>的<b class='flag-5'>详细</b>资料<b class='flag-5'>说明</b>

    Python3与Arduino通信

    电子发烧友网站提供《Python3与Arduino通信.zip》资料免费下载
    发表于 06-26 14:39 0次下载
    <b class='flag-5'>Python3</b>与Arduino通信

    python定义函数调用函数的顺序

    定义函数调用函数的顺序 函数定义后,本身是不会自动执行的,只有在被
    的头像 发表于 10-04 17:17 1380次阅读

    Python 函数参数分类

    文章应该对你会有不小的帮助。 接下来是正文。 1. 参数分类 函数,在定义的时候,可以有参数的,也可以没有参数。 从
    的头像 发表于 10-21 10:45 769次阅读

    python如何定义一个函数

    一、Python3 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 函数能提高应用的模块性,和代码的重复利用率。你已经知道
    的头像 发表于 11-14 11:26 709次阅读

    python调用math函数的方法

    中。本文将详细介绍math模块中的各种数学函数调用方法,包括函数的功能、参数的使用和返回值的含
    的头像 发表于 11-22 11:01 2959次阅读

    Python2与Python3的差异

    Python2中,print语句是一个关键字,而在Python3中,print函数被引入,必须使用括号。此外,Python3要求字符串必须使用括号括起来,而
    的头像 发表于 11-23 16:48 997次阅读