Python笔记(六)_函数】的更多相关文章

函数一般是从第一行代码开始执行,结束于return语句.异常.或者函数所有语句执行完毕.一旦函数将控制权交还给调用者,就意味着全部结束.函数中做的所有工作以及保存在局部变量中的数据都将丢失.再次调用这个函数时,一切将从头创建. 定义函数 >>>def myfun(x,y): #定义函数名 print(x+y) #函数体 >>>myfun(3,4) #调用函数 12 当函数体中存在循环且每次需输出时,使用print来打印多个结果 函数的返回值 >>>de…
一 调用函数 在写函数之前,我们先尝试调用现有的函数 >>> abs(-9) 9 除此之外,还有我们之前使用的len()等.可以用于数据类型转换的 int() float() str() bool()等函数.还有一些可以直接只用的内置函数等. 二.函数名称.参数.返回值 在写函数的时候,只需要定义定义函数的名称,参数即可,不必和java一样,定义返回值的类型,且在写参数的时候,不用指定参数的类型: return 返回值也更加奔放,可以返回任意类型的数据:例如 数值,列表,字典,甚至是函数…
函数 为了便于程序的维护和更好的实现模块化,好的程序都会分解为很多函数. 可以这么说,对于任何的编程语言,函数都是一个非常重要的概念. python 不仅简化了函数的定义过程,而且还大量借鉴了其他函数编程语言中的优秀特性. 本章内容非常重要! 一. 函数的概念和作用 1.1什么是函数 函数就是把完成特定功能的一段代码封装起来.给该功能起一个名字(函数名). 哪里需要实现该功能就在哪里调用该函数. 函数可以在任何时间任何地方调用. 所谓函数,就是把具有独立功能的代码块组织为一个小模块,在需要的时候…
函数 三.作用域规则 有了函数之后,我们必须要面对一个作用域的问题. 比如:你现在访问一个变量,那么 python 解析器是怎么查找到这个变量,并读取到这个变量的值的呢? 依靠的就是作用域规则! 3.1 作用域 作用域(scope) 作用域就是 python 程序的一块文本区域,在这个区域内,可以直接访问(Directly accessible)命名空间. 直接访问的意思就是:当你访问一个绝对的命名的时候,直接在命名空间中查找 尽管作用域的定义是静态的,但是作用域的使用(查找变量)却是动态的.…
函数的高级应用 二.高阶函数 高级函数, 英文叫 Higher-order Function. 那么什么是高阶函数呢? 在说明什么是=高阶函数之前, 我们需要对函数再做进一步的理解! 2.1 函数的本质 函数的本质是什么? 函数和函数名到底是一种什么关系? 在python中,一切皆对象,那么函数也不例外,也是一种对象. 从本质上看,一个函数与一个整数没有本质区别,仅仅是他们的数据类型不同而已! 看下面的代码: def foo(): pass print(foo) # 这里只打印了函数名, 并没有…
匿名函数 无需显式定义函数名,和函数过程,使代码更精简的lambda表达式 函数没有命名,不用担心函数名的冲突 冒号前面代表函数的参数,后面表示计算过程 >>>func=lambda x : 2*x+1 >>>func(5) 11 map() 根据提供的函数对指定序列做出相应的映射 它接受两个参数,第一个是函数对象本身,第二个是序列 map将传入的函数依次作用到序列的每个元素,并把结果作为新的迭代器返回 由于结果是一个迭代器,可通过list()函数让它返回一个新的lis…
查看所有的内置函数:dir(__builtins__) abs()   获取绝对值 max()   返回给定元素中的最大值 min()   返回给定元素中的最小值 sum()   求和 reversed()   反转,逆序对象 sorted()   排序 str()    转换为字符串类型 float()   转换为浮点型 int()   转换为整型 list()   列表构造函数 dict()   创建字典 set()   创建集合 type()   显示对象所属类型 len()   计算对象…
1,私有属性 class Foo: def __init__(self, x): self.x = x 类的属性在实例化之后是可以更改的: f = Foo(1) print(f.x) # 1 f.x = 2 print(f.x) # 2 如果想禁止访问属性,即让属性私有,可以用“双下划线” 或者“单下划线”: class Foo: def __init__(self, x, y): self._x = x self.__y = y def __repr__(self): return 'f._x…
最近学习python,学到了函数传参,看到了以下这个特殊情况,特此来做个笔记 def add(*, x, y): print(x, y) 以上函数定义后,该怎么传参?前面的那个*号是做什么用的? 我们可不可以照以下方式 传参? add(5, 6, 7),这样传参可不可以?会不会有错? 我们来看结果 提示参数过多,看来这样传参不对 看来这样也不行 这样也不可以,那怎么传才对呢?按道理上面的传法应该是正确的为什么还报错? 这次终于对了,为什么呢,因为定义函数参数时候,如果定义了位置参数,并且在最前面…
五.递归函数 什么叫递归(recusive)? 你拿两个镜子互相面对着, 然后去看镜子, 会发现每个镜子中很多个镜子, 层层的嵌套, 无穷尽, 这就是一种递归! 从前有坐山, 山里有座庙, 庙里有个老和尚在给小和尚讲故事: 从前有座山.... 如果你小的时候被人忽悠听过这个故事, 这个故事是递归! 计算机机中的递归是指: 一个函数在内部自己调用自己, 这就叫函数的递归调用! 就像前面两种情况一样, 如果不发生点意外, 比如一个镜子被拿走了, 或者老和尚挂了, 则递归无穷尽. 函数递归一样, 也要…
本来是想打算使用eval函数对变量进行赋值的,没想到出现了invalid syntax错误.源代码如下 In [2]: eval('a = 1') File "<string>", line 1 a = 1 ^ SyntaxError: invalid syntax 百度没百度到结果,最后在stackoverflow上找到了好的答案,这里是原文链接. 作者的意思是,eval函数只负责对表达式进行处理,并没有赋值的功能,也就是说,eval函数只负责对你的输入进行输出,True…
函数基础 目标 函数的快速体验 函数的基本使用 函数的参数 函数的返回值 函数的嵌套调用 在模块中定义函数 01. 函数的快速体验 1.1 快速体验 所谓函数,就是把 具有独立功能的代码块 组织为一个小模块,在需要的时候 调用 函数的使用包含两个步骤: 定义函数 -- 封装 独立的功能 调用函数 -- 享受 封装 的成果 函数的作用,在开发程序时,使用函数可以提高编写的效率以及代码的 重用 演练步骤 新建 04_函数 项目 复制之前完成的 乘法表 文件 修改文件,增加函数定义 multiple_…
1.函数式编程 函数式编程就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量. 函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数! 传入函数 既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数. 一个最简单的高阶函数: def add(a,b,f):    return f(a)+f(b)    print(add(-1,-2,abs)) 当我们调用add(-5, 6, abs)时,…
# print(all([1,2,3,4]))#判断可迭代的对象里面的值是否都为真# print(any([0,0,0,0,0]))#判断可迭代的对象里面的值是否有一个为真# print(bin(10))#十进制转二进制 #下面这些函数都是强制类型转换# print(bool('s'))#把一个对象转换成布尔类型# int()#整形# float()#小数# str()#zifuc# dict()#字典# list()#列表# set()#集合# tuple()#元组,元组里面值不可变,列表可以…
1.re.findall()函数 语法:re.findall(pattern,string,flags=0) --> list(列表) 列出字符串中模式的所有匹配项,并作为一个列表返回.如果无匹配,则返回空列表! 与re.search()不一样的地方: re.findall返回的是列表,re.search返回文本 re.findall匹配多个值,re.search只要匹配到就返回,只匹配一个值 >>> import re >>> re.findall(r"…
1,函数的参数 1.1,查看函数的参数类型 def run(a, *args, b, **kwargs): return a + b 可以通过如下方式查看参数类型: import inspect k = inspect.signature(run) for i, j in k.parameters.items(): print('{:7}:'.format(i) , j.kind) 输出结果为: a : POSITIONAL_OR_KEYWORD args : VAR_POSITIONAL b…
1.进程 1)调用unix/linux系统中的进程函数fork(),用法和linux相同,调用成功返回0,失败返回-1: import os print 'Process (%s) start...' % os.getpid() pid = os.fork() if pid==0: print 'I am child process (%s) and my parent is %s.' % (os.getpid(), os.getppid()) else: print 'I (%s) just…
一 为何要有函数? 不加区分地将所有功能的代码垒到一起,问题是: 代码可读性差 代码冗余 代码可扩展差 如何解决? 函数即工具,事先准备工具的过程是定义函数,拿来就用指的就是函数调用 结论:函数使用必须是:先定义,后调用 二:函数的分类 1.内置函数:built-in 2.自定义函数: def 函数名(参数1,参数2,...): '''注释''' 函数体 函数的使用:先定义,后调用如何定义函数之定义函数的三种形式 可以先看个例子 ''' ************ ************ ***…
5. 函数 Python函数代码块以 def 关键词开头; 函数内容以冒号起始,并且缩进. *注: python中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象. 前者传递的只是值的拷贝,不影响对象本身; 后者传递的是对象的地址,会改变对象本身 *5.1 参数: 1. 位置参数(必选参数): 调用函数时,传入的值按照位置顺序依次赋给每个位置参数 2. 默认参数: def power(x, n=2): 或 def enroll…
目录 目录 前言 函数的返回值 在函数中Return和Print的区别 函数中的文档 前言 函数的返回值是函数重要的组成部分.函数的根本在于实现程序的部分功能,所以很多时候我们需要将函数执行后的结果返回给程序再由程序作出进一步的操作.可以说是函数的返回值令函数与函数之间,函数与主程序之间更加紧密的联系起来. 函数的返回值 在Python的函数中都有一个返回值,默认为None.也可以使用return value语句来定义一个且只能定义一个可为任意类型的返回值.但是我们能够返回一个序列类型的对象,来…
前言 上一篇主要介绍了Python函数的参数类型,本篇继续学习Python函数多类型传值. 目录 前言 目录 软件环境 参数的多类型传值 向函数传递Tuple 向函数传递List 向函数传递Dictionary 软件环境 系统 UbuntuKylin 14.04 软件 Python 2.7.4 IPython 4.0.0 参数的多类型传值 一般而言,形参和实参的数量要一致.但是当实参为序列数据类型时,我们可以将多个实参传递到形参中. 我们可以在实参列表中以 * 或者 ** 标识符来限制传入的实参…
目录 目录 前言 软件环境 Python Module的程序入口 函数的属性 Python函数的创建 函数的参数 必备参数 缺省参数 命名参数 不定长参数 匿名参数 偏函数的应用 前言 Python除了有丰富的标准库之外,还可以自己定义满足自身需求的类和函数.本篇主要介绍如何创建Python自定义函数. 软件环境 系统 UbuntuKylin 14.04 软件 Python 2.7.4 IPython 4.0.0 Python Module的程序入口 因为一个Python的程序文件同时也是一个模…
面向对象编程 概念:简称OOP,是一种程序设计思想:OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数 面向对象的设计思想:抽象出类class,根据类class创建实例对象instance 类: 用来描述具有相同的属性和方法的对象的集合,它定义了该集合中每个对象所共有的属性和方法,对象是类的实例 对象:通过类定义的数据结构实例,对象包括两个数据成员(类变量和实例变量)和方法 类对象:当你这个类定义完的时候,类定义就变成类对象,可以直接通过“类名.属性”或者“类名.方法名()”引用…
python作为一个既面向对象,又支持函数式编程的语言,函数的使用方面有很多特点. 比如:闭包,装饰器,迭代器等 函数的高级应用 容器:生活中常见的容器有哪些?袋子,盆子,水杯,书包,铅笔盒... 容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个的迭代获取,可以用in,not in等关键字判断某个元素是否包含在容器中.在python中常见的容器对象有: list, tuple, dict, str, set 容器你可以把它看做一个房子,一个柜子,一个盒子,里面可以塞任何东西,从技术…
一.函数的作用 函数可以让我们代码结构更清晰,而且避免了代码的重复,冗余,使一段代码或者功能可以反复的被调用,大大提高了开发效率 二.函数的定义 def 函数名(参数1,参数2,*args,默认参数,**kwargs): """注释:函数功能和参数说明""" 函数体 -- return 返回值 1.定义:def 关键词开头,空格之后接函数名称和圆括号(). 2.参数:圆括号用来接收参数.若传入多个参数,参数之间用逗号分割. 参数可以定义多个,也可…
高阶函数: 如果一个函数的入参是一个函数名的话,那这个函数就是一个高阶函数 函数即变量 # def hello(name):# print(name)# new_hello = hello#hello函数体赋给new_hello也是函数#hello('hello..')#new_hello('new_hello')# print(type(hello))# print(type(new_hello))new_hello也是函数#如果不明白函数即变量,就看这里 #下面是高阶函数的列子#如果一个函数…
一.习题讲解 1.写函数,返回一个扑克牌列表,里面有52项,每一项是一个元组.例如:[(‘红心’,2), (‘草花’,2), …(‘黑桃,‘A’)] def cards(): num=[] for v in range(2,11): num.append(v) num.extend(['J','Q','K','A']) type=['红心','草花','方块','黑桃'] result=[] for i in num: for j in type: result.append((j,i)) re…
1.sorted(排序对象,key=):排序对象可以是类别,也可以是字符串和字典,key为自定义排序,如:[key=abs,按绝对值排序][key=lambda x:x[1],按排序对象的第二个值排序,若为二维数组,第二维排,若为字典则按值排] ①sorted(排序对象,key=abs): 数值:key=abs  [按照绝对值排序] 字符串:默认按小写到大写排序.key=str.lower[将所有的字符串变成小写再排序]eg: sorted  (  ['a','dob','Cold',Zoo']…
前言 调试的过程中碰到的问题基本都是以前没有遇到过的,而且需要对整个协议栈及射频方面的工作流程较熟悉才能找到问题的原因,需要多读SX1276的数据手册以及与射频芯片的物理层通信例程和MAC层通信例程进行对比相结合. 正文 发送失败 LoRa 模块在进行 模式切换时,比如TX 切换到RX模式,需要先将设备切换到standby模式 CRC 校验失败,然后程序陷入死循环 按逻辑来讲,CRC校验失败,应该进行的操作是吧校验失败的这个数据包丢弃,然后重启接收机(芯片每次接收完成都应该重启SX1276) 但…
test_module2.py: # -*- coding: utf-8 -*-"""测试 模块变量的作用域 总结:1 其他模块的变量,在当前模块的任何地方,包括函数都可以通过 模块.变量 访问,包括读写2 本模块的变量, 在函数中访问时,第一次出现是读操作,直接使用 第一次出现是写操作,必须gloabl 声明 否则变成局部变量3 在本模块头部引用外部模块变量,所有函数都能访问. 如果只在本模块的某个函数中导入外部模块变量 只在该函数中访问, 在本模块.本模块其他函数中都无法…