python函数

Python线性数据结构

别说谁变了你拦得住时间么 提交于 2020-03-27 02:37:47
python线性数据结构 目录 1 线性数据结构 2.内建常用的数据类型 2.1 数值型 2.2 序列(sequence) 2.2.1 list 列表 2.2.2 tuple 元组 2.2.3 string 字符串 2.2.4 bytes 字节 2.2.5 bytearray 字节数组 <center>码好python的每一篇文章.</center> 1 线性数据结构 本章要介绍的线性结构:list、tuple、string、bytes、bytearray。 线性表:是一种抽象的数学概念,是一组元素的序列的抽象,由有穷个元素组成(0个或任意个)。 线性表又可分为 顺序表和链接表。 顺序表:一组元素在内存中有序的存储。列表list就是典型的顺序表。 链接表:一组元素在内存中分散存储链接起来,彼此知道连接的是谁。 对于这两种表,数组中的元素进行查找、增加、删除、修改,看看有什么影响: 查找元素 对于顺序表,是有序的在内存中存储数据,可快速通过索引编号获取元素,效率高。。 对于链接表是分散存储的,只能通过一个个去迭代获取元素,效率差。 增加元素 对于顺序表,如果是在末尾增加元素,对于整个数据表来说没什么影响,但是在开头或是中间插入元素,后面的所有元素都要重新排序,影响很大(想想数百万或更大数据量)。 对于链接表,不管在哪里加入元素,不会影响其他元素,影响小。 删除元素 对于顺序表

Python线性数据结构

倖福魔咒の 提交于 2020-03-27 02:14:02
3 月,跳不动了?>>> python线性数据结构 [TOC] <center>码好python的每一篇文章.</center> 1 线性数据结构 本章要介绍的线性结构:list、tuple、string、bytes、bytearray。 线性表:是一种抽象的数学概念,是一组元素的序列的抽象,由有穷个元素组成(0个或任意个)。 线性表又可分为 顺序表和链接表。 顺序表:一组元素在内存中有序的存储。列表list就是典型的顺序表。 链接表:一组元素在内存中分散存储链接起来,彼此知道连接的是谁。 对于这两种表,数组中的元素进行查找、增加、删除、修改,看看有什么影响: 查找元素 对于顺序表,是有序的在内存中存储数据,可快速通过索引编号获取元素,效率高。。 对于链接表是分散存储的,只能通过一个个去迭代获取元素,效率差。 增加元素 对于顺序表,如果是在末尾增加元素,对于整个数据表来说没什么影响,但是在开头或是中间插入元素,后面的所有元素都要重新排序,影响很大(想想数百万或更大数据量)。 对于链接表,不管在哪里加入元素,不会影响其他元素,影响小。 删除元素 对于顺序表,删除元素和增加元素有着一样的问题。 对于链接表,不管在哪里删除元素,不会影响其他元素,影响小。 修改元素 对于顺序表,可快速通过索引获取元素然后进行修改,效率高。 对于链接表,只能通过迭代获取元素然后进行修改,效率低。 总结

Python- 装饰器

纵饮孤独 提交于 2020-03-26 23:28:22
一、装饰器   目录     1、装饰器定义     2、装饰器原则     3、装饰器练习     4、装饰器高级版 二、    1、定义:       本质是函数,就是为其他函数附加功能    2、原则:       1、不能修改被装饰的函数的源代码       2、不能修改被修饰的函数的调用方式   3、练习 1 def demo1(func): 2 def doca(*args,**kwargs): 3 func(*args,**kwargs) 4 print('我是显示器') 5 return doca 6 7 @demo1 8 def b1(): 9 print('源代码1') 10 11 @demo1 12 def b2(name,age): 13 print('源代码2',name,age) 14 15 16 b1() 17 b2('alex',23)   4、高级版       1、需求是,test1、test2、test3假如是三种不同平台要登录,所验证的方式不一样 1 user,pwd='123','123' 2 def auto(auto_type): 3 def worapps_type(func): 4 def worapps(*args,**kwargs): 5 if auto_type == 'ldouc': 6 username=input(

10个Python面试常问的问题

坚强是说给别人听的谎言 提交于 2020-03-26 22:59:45
概述 Python是个非常受欢迎的编程语言,随着近些年机器学习、云计算等技术的发展,Python的职位需求越来越高。下面我收集了10个Python面试官经常问的问题,供大家参考学习。 类继承 有如下的一段代码: class A(object): def show(self): print 'base show' class B(A): def show(self): print 'derived show' obj = B() obj.show() 如何调用类A的show方法了。 方法如下: obj.__class__ = A obj.show() __class__方法指向了类对象,只用给他赋值类型A,然后调用方法show,但是用完了记得修改回来。 方法对象 问题:为了让下面这段代码运行,需要增加哪些代码? class A(object): def __init__(self,a,b): self.__a = a self.__b = b def myprint(self): print 'a=', self.__a, 'b=', self.__b a1=A(10,20) a1.myprint() a1(80) 答案:为了能让对象实例能被直接调用,需要实现__call__方法 class A(object): def __init__(self, a, b): self.__a

python基础学习day12 生成器与推导式

老子叫甜甜 提交于 2020-03-26 18:07:01
补充:函数不能改变全局不可变的变量,可变变量仍然可改变。 l1 = [1,2] def a(l1): l1.pop(1) a(l1) print(l1) 生成器 生成器:python社区把生成器与迭代器看成同一种,生成器的本质就是迭代器。唯一的区别是:生成器是我们自己用python代码构建的数据结构,迭代器都是python提供的,或者转化的。 获取生成器的方法: 生成器函数 生成器表达式 python内部提供的。 生成器函数 获取生成器,yield: def func(): print(1) print(3) yield 5 print(func) #<function func at 0x000001A3CCA04438> 仍然是一个函数 ret = func() print(ret) #<generator object func at 0x000002471A631D48> #generator object#生成器对象 def func(): print(3) yield 5 ret = func() print(next(ret)) #3 5 #一个next对一个yield的返回值 def func(): print(3) yield 5 yield 7 print(next(func())) #3 5 yield与return return

python生成器、推导式及匿名函数

非 Y 不嫁゛ 提交于 2020-03-26 17:48:41
生成器初识 生成器本质就是迭代器。python社区中生成器与迭代器是一种概念。生成器与迭代器的唯一区别:迭代器都是Python给你提供的已经写好的工具或者通过数据转化得来的,(比如文件句柄,iter([1,2,3])。生成器是我们自己用python代码构建的工具。 生成器构建方式 生成器函数。 生成器表达式。 python给你提供的一些内置函数,返回一个生成器。 生成器函数。 生成器函数: 只要函数中出现了yield那么他就不是函数,它是生成器函数 def func(): print(111) yield 2,4,5 print(222) yield 3 ret = func() # 生成器对象 print(ret) # <generator object func at 0x0000000001E10F68> # 只要函数中出现了yield那么他就不是函数,它是生成器函数。 # 一个next对应一个yield.next超过yield数量,就会报错,与迭代器一样。 print(next(ret)) print(next(ret)) yiled与return的区别 # return 结束函数,给函数的执行者返回值(多个值通过元组的形式返回)。 # yield 不结束函数,对应着给next返回值(多个值通过元组的形式返回)。 send(了解) def gen(name): print

python练习题

半腔热情 提交于 2020-03-26 17:26:18
1、使用while实现:输出摄氏温度与华氏温度的对照表,要求它从摄氏温度0度到250度,每隔20度为一项,对照表中的条目不超过10条。 * 转换关系:华氏温度 = 摄氏温度 9 / 5.0 + 32** 循环操作:计算摄氏温度,并输出对照条目 循环条件: 条目<=10 && 摄氏温度 <= 250 def xgp(): t = 1 w = 0 while (t <= 10 and w <= 250): t = t + 1 w = w + 20 s = w*9/5.0+32 print(w,s,end=" ") print() xgp() 输出结果如下: 20 68.0 40 104.0 60 140.0 80 176.0 100 212.0 120 248.0 140 284.0 160 320.0 180 356.0 200 392.0 2、输入一个4位数,如果各个数字之和大于20,则为幸运数。 def sw(): num = int(input("请您输入四位数的号码:")) print('您输入的是:'+str(num)) # 分解四位数,获取各位数字 # 获取个位数字 gw = num%10 # 获取十位数字 xw = int(num%100/10) # 获取百位数字 bw = int(num/1000%10) # 获取千位数字 qw = int(num/1000) #

一个开发10年程序员论:学习Python最正确的步骤

ε祈祈猫儿з 提交于 2020-03-26 17:01:14
很多人都在问Python学习步骤应该如何安排?多长时间可以达到精通呢? Python学习步骤应该怎样安排: 首先,学习Python编程技术,自学或者参加培训学习都适用,每个人都有自己的学习方式和方法。 一:明确自己的学习目标。 不管我们学习什么样的知识,都要对自己的学习目标有一个明确的认识。只有这样才能朝着目标持续的前进,少走弯路,从而在学习的过程中得到提升,享受整个学习的乐趣。 二:基础的Python学习。 1. 了解Python是什么,都能做些什么? 2. 知道什么是变量、算法、解释器 3. Python基本数据类型 4. 列表和元组的操作方法 5. 字符串操作方法 6. 基本的字典操作方法 以上这些可以略微掌握之后就进行下一步,遇到不会的可以在网上查找一下,或者看下书和笔记以及一些基础的学习视频。另外不管你是为了Python就业还是兴趣爱好,记住:项目开发经验永远是核心,如果你缺新项目练习或者没有python精讲教程,可以去小编的Python交流.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,里面很多新教程项目,还可以跟老司机交流讨教! 三、掌握Python的条件、循环和相关的执行语句 任何知识它的基础知识都是有些枯燥的,现在我们就可以动手来做一些逻辑层面的东西了。掌握 if、else、elif、while、for、continue

阿里大神总结的Python基础知识实例,超详细

孤者浪人 提交于 2020-03-26 16:10:07
1、在Python 语言中,对象是通过引用传递的。 2、多元赋值,其实就是元组赋值 3、编写模块 4、时刻记住一个事实 5、动态类型 6、变量在内存中是通过引用计数来跟踪管理的 7、异常处理 8、所有的Python 对像都拥有三个特性 9、布尔值 10、对象身份比较 11、cmp() 12、str()和repr() 13、isinstance()和type(),主要体现的是代码的优化 14、标准类型的分类 15、不同数据类型之间的运算 16、python除法: 17、工厂函数 18、内建函数 (1)适用于所有数据类型的内建函数: (2)适用于整数的内建函数: 19、布尔值 20、数字类型相关模块 21、随机数,要导入random模块 示例: 22、成员关系操作符 (in, notin) 23、len()函数,可以得到序列长度 24、访问序列中的元素可以使用负索引 注意:不管你是为了Python就业还是兴趣爱好,记住:项目开发经验永远是核心,如果你缺新项目练习或者没有python精讲教程,可以去小编的Python交流.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,里面很多新教程项目,还可以跟老司机交流讨教! 25、序列切片操作 26、字符串、序列、元组类型转换 27、序列类型可用的内建函数 28、字符串 29、字符串模块 30、字符串格式化 31、原始字符串 32

十条Python面试题陷阱,看看你是否会中招

妖精的绣舞 提交于 2020-03-26 15:33:11
每年的3-4月份是跳槽的高峰期,无论是应聘Python web开发,爬虫工程师,或是数据分析,还是自动化运维,都涉及到一些基础的知识!我挑了一些Python的基础面试题,看看你能不能的答上来,也许面试的同学用的着! 问题1:请问如何修改以下Python代码,使得下面的代码调用类A的show方法? 答:这道题的考点是类继承,只要通过__class__ 方法指定类对象就可以了。补充的代码如下: 问题2:请问如何修改以下Python代码,使得代码能够运行? 答:此题考察得是方法对象,为了能让对象实例能被直接调用,需要实现 __call__ 方法,补充代码如下: 问题3:下面这段代码的输出是什么? 答: 此题考察的是new和init的用法,使用 __new__ 方法,可以决定返回那个对象,也就是创建对象之前调用的,这个常见于于设计模式的单例、工厂模式。__init__ 是创建对象是调用的。 问题4:下面这段代码输出什么? 答: 此题考察的是列表和字典的生成。 问题5:下面这段代码输出什么? 答: 此题考察全局变量和局部变量。num 不是个全局变量,所以每个函数都得到了自己的 num 拷贝,如果你想修改 num ,则必须用 global 关键字声明。比如下面这样 问题6:如何使用一行代码交换两个变量值? 答: 问题7:如何添加代码,使得没有定义的方法都调用mydefault方法? 答: