参考 1. 给Python加速(性能加速的方法); 2. pythonSpeed_PerformanceTips; 完…
python基础之序列类型的方法--字符串方法 Hello大家好,我是python学习者小杨同学,经过一段时间的沉淀(其实是偷懒不想更新),我终于想起了自己的博客账号,所以这次带来的是序列方法的后半部分:字符串的方法. 接上述的列表和元组的方法,我们这次来讲讲字符串的方法,现在我们一起开始学习吧. 注:字符串是不可变类型,改.删的操作将会改变原有字符串,说人话就是改了以后它就不是原来的那个它了(滑稽). 查 index()方法 与列表相同,index查询指定元素的下标值,如果没有该元素,则抛出错…
今天是2017-05-03,这里记录一些python的基础使用方法.世上存在着不能流泪的悲哀,这种悲哀无法向人解释,即使解释人家也不会理解.它永远一成不变,如无风夜晚的雪花静静沉积在心底. Python的基础学习 一.python中函数作为参数 import math def add(x, y, f): return f(x) + f(y) print(add(25, 9, math.sqrt)) # 8.0 二.python引用自定义模块 在同目录下面定义两个文件huhx.py和huhx5.p…
☞写在前面 在说Python之前,我想先说一下自己为什么要学Python,我本人之前也了解过Python,但没有深入学习.之前接触的语言都是Java,也写过一些Java自动化用例,对Java语言只能说有所掌握,但离精通还有较大的距离.Java我先前也有学过,但我觉得学起来还是比较吃力的,特别在自学状态下.所以自从我了解了Python后,有种相见恨晚的感觉,觉得Python实在是太好用了,据我了解,目前从事测试和运维工作的同学,都在学习Python语言,本人一直从事测试工作,深刻体验到不会一门语言…
在此申明一下,博客参照了https://www.cnblogs.com/jin-xin/,自己做了部分的改动 (1)python应用领域 目前Python主要应用领域: 云计算: 云计算最火的语言, 典型应用OpenStack,k8s WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣..., 典型WEB框架有Django,flask,Tornado 科学运算.人工智能: 典型库NumPy, SciPy, Matplotlib, Ent…
一.编程语言的发展史 机器语言-->汇编语言-->高级语言,学习难度及执行效率由高到低,开发效率由低到高 机器语言:二进制编程,0101 汇编语言:用英文字符来代替0101编程 高级语言: 编译型语言:像谷歌翻译一样,一大段一大段的编译 优点:一次编译,永久运行 缺点:开发效率低,编译不通过就直接不执行了,每次修改需要重新编译 解释行语言:像同声传译一样,一行一行的编译 优点:方便修改,更新迭代    缺点:执行效率低 二.python基础 python的创始人为吉多·范罗苏姆(Guido v…
优化算法时间复杂度 算法的时间复杂度对程序的执行效率影响最大,在Python中可以通过选择合适的数据结构来优化时间复杂度,如list和set查找某一个元素的时间复杂度分别是O(n)和O(1).不同的场景有不同的优化方式,总得来说,一般有分治,分支界限,贪心,动态规划等思想. 减少冗余数据 如用上三角或下三角的方式去保存一个大的对称矩阵.在0元素占大多数的矩阵里使用稀疏矩阵表示. 合理使用copy与deepcopy 对于dict和list等数据结构的对象,直接赋值使用的是引用的方式.而有些情况下需…
#!usr/bin/env python# -*- coding:utf-8 -*-#python的算法加减乘除用符号:+,-,*,/来表示#以下全是python2.x写法,3.x以上请在python(打印放入括号内) 例如:print('1+1=',1+1)print '*-----------------------------------------------------*分割符'print "1+1=",1+1 #打印加法1+1的结果2print "2-1=&quo…
对象方法.属性和迭代器 1.构造方法 1)构造方法和一般方法的不同点:当一个对象被创建后,会立即调用构造方法. 2)在Python中创建一个构造方法很容易,只要把init方法的名字从简单的init修改成魔法版本__init__即可.…
生成时间戳 1. time.time() 输出 1515137389.69163 ===================== 生成格式化的时间字符串 1. time.ctime() 输出 Fri Jan 5 15:34:00 2018 ============================= 2. time.strftime("%Y-%m-%d %H:%M:%S") 输出 2018-01-05 15:34:27 ======================== 生成结构化时间 1.…
绑定和方法调用现在我们需要再次阐述Python中绑定(binding)的概念,它主要与方法调用相关联.方法是类内部定义的函数,这意味着方法是类属性而不是实例属性.其次,方法只有在其所属的类拥有实例时,才能被调用.当存在一个实例时,方法才被认为是绑定到那个实例了,没有实例时,方法就是未绑定的.任何一个方法定义中都有一个参数是变量self.它表示调用此方法的实例对象. 核心笔记:self变量用于在类实例方法中引用方法所绑定的实例.方法的实例在任何方法调用中总是作为第一参数传递的,self代表方法的实…
链表类型有很多方法,这里是链表类型的所有方法: append(x) 把一个元素添加到链表的结尾,相当于a[len(a):] = [x] extend(L) 通过添加指定链表的所有元素来扩充链表,相当于a[len(a):] = L insert(i, x) 在指定位置插入一个元素.第一个参数是准备插入到其前面的那个元素的索引,例如a.insert(0, x)会插入到整个链表之前,而a.insert(len(a), x)相当于a.append(x) remove(x) 删除链表中值为x的第一个元素.…
补充内置函数 isinstance(obj,Foo)   # 判断obj是不是foo的实例 issubclass()      # 判断一个类是不是另一个类的子类 反射 什么是反射? 通过字符串来操作类或者对象的属性 怎么用? hasattr(adj,’xxx’) 判断adj有没有’xxx’属性 getattr(adj,’xxx’,None) adj有’xxx’就返回adj.xxx,没有则返回None,若不指定第三个                                 参数,没有则会…
1. 重写一般方法和特殊的构造方法 1.1 如果一个方法在B类的一个实例中被调用(或一个属性被访问),但在B类中没有找到该方法,那么会去它的超类A里面找. class A: ... def hello(self): ... print "Hello, I'm A." ... >>> class B(A): ... pass ... >>> a = A() >>> b = B() >>> a.hello() Hell…
with: __enter__ __exit__ dic={} 获取容器中指定元素的行为 dic["name"] = "egon" #设置值 __setitem__ dic["name"] #取值 __getitem__ 类的创建 __call__ 对象的创建 __new__ # 如果在__new__中return 了字符串,那么就不会走自身的 __init__ ,而是去走 str 的__init__ 构造方法 __init__ 当一个实例被创建…
__getitem__和__setitem__: 这个方法返回与指定键想关联的值.对序列来说,键应该是0~n-1的整数,其中n为序列的长度.对映射来说,键可以是任何类型. class A : __getitem__: print(x) 实例化 a = A(),则a[y]就会调用这个方法 def checkIndex(key): """ 所给的键是能接受索引吗? 为了能被接受,键应该是一个非负的整数.如果她不是一个整数,会引发TypeError; 如果他是负数,则会引发Inde…
目录 1. 列表 1.1 序列 1.2 通用的序列操作 1.3 列表的基本操作 1.4 列表方法 1. 列表 数据结构:以某种方式(如通过编号)组合起来的元素(如数,字符乃至其他数据结构)集合. 在python中,最基本的数据结构为序列.序列中的每个元素都有编号,即其位置或索引,其中第一个元素的索引为0,第二个元素的索引为1,以此类推. 偏移量:相对于序列开头的偏移量 1.1 序列 容器(container):可包含其他对象的对象 主要的容器:序列(列表和元组(索引)),映射(字典(键))和集合…
Hello大家好,我是python学习者小杨同学,上次跟大家分享关于python的数值类型和序列类型,本次就承接上一节的内容,说一说序列类型的方法. 序列类型的方法,简单的来说就是四个字:增删改查.随着我们学习的深入,我们将会一直围绕着四个字来进行程序的编写及实现,接下来我们就一起学习吧! 列表的方法 首先登场的选手是python的列表,列表属于可变类型,所以它将有完整的增删改查方法,让我们一起来看看具体是什么. 增 增,故名思意就是可以对列表进行新增元素的操作,python的列表提供了三种新增…
max函数(min函数使用方法一致): #-----------------max函数----------------- #max之简单层次的使用 li=[1,0,2,45,12,-2,7,9] res1=max(li) print(res1) #max之中等层次的使用 name_age={"alex":16,"kelvin":12,"bob":31,"jack":15} res2=max(name_age)#直接传入字典比较…
封装 1.什么是封装: 封:属性对外隐藏,但对内开放 装:申请一个名称空间,往里装入一系列名字/属性 2.为什么要封装: 封装数据属性:不让外部使用者直接使用数据,需要类内部开辟一个接口,让外部通过接口使用数据,好处在于可以在接口中定义各种规则 封装函数属性:定义函数就是为了给类外部使用者的,隐藏函数属性是为了不让外部直接使用,需内部接口,然后接口去调用隐藏的功能 封装的精髓是隔离复杂度 3.如何封装(隐藏):在属性前加上__开头 ①这种隐藏只是语法上的变形操作,类中__n其实是_类名__n ②…
一.抽象类 1.抽象类的定义:从一堆类中抽象出相同的内容,重新组成一个新的类,这样的类属于抽象类. 2.香蕉类是一类水果,苹果类是一类水果,葡萄类是一类水果,但是他们都属于水果,从他们这些类中可以抽象出相同的部分都是属于水果类,这个水果类就属于抽象类.但是你永远无法吃到一个叫水果的对象,所以抽象类是不能被实例化的,他只能被别的类所继承,并且子类必须实现抽象方法. 3.该抽象类主要和abc模块结合使用.(之前将的读和写) 4.抽象类的本质还是类,指的是一组类的相似处,包括数据属性和函数属性,而接口…
目录 1. 字典 1.1 字典的作用 1.2 创建和使用字典 1.2.1 dict类 1.2.2 基本的字典操作 1.2.3 字典方法 1. 字典 映射:可以通过名称来访问其各个值的数据结构. 字典是pyth中唯一的内置映射类型,其中的值不按顺序排列,而是存储在键下,键可能是数,字符串或元组. 1.1 字典的作用 表示棋盘的状态,其中每个键都是由坐标组成的元组. 存储文件修改时间,其中键为文件名. 数字电话/地址簿 1.2 创建和使用字典 字典由键(key)及其相应的值组成,这种键-值对称为项(…
# f=open('code.txt','rb')#b的方式不能指定打开编码格式,以二进制的方式打开文件 # data=f.read() # print(data) # #encode 编码 decode解码 # print(data.decode(encoding="GBK")) # f.close() # # f=open("test22.py",'wb')#b的方式不能指定编码,以二进制格式写入 # f.write(('111\n').encode('GBK'…
Python 代码优化常见技巧 代码优化能够让程序运行更快,它是在不改变程序运行结果的情况下使得程序的运行效率更高,根据 80/20 原则,实现程序的重构.优化.扩展以及文档相关的事情通常需要消耗 80% 的工作量.优化通常包含两方面的内容:减小代码的体积,提高代码的运行效率. 改进算法,选择合适的数据结构 一个良好的算法能够对性能起到关键作用,因此性能改进的首要点是对算法的改进.在算法的时间复杂度排序上依次是: O(1) -> O(lg n) -> O(n lg n) -> O(n^2…
1. Python的三元表达式: 现在大部分高级语言都支持 “?”这个三元运算符,它对应的表达式如下:condition ? value if true:value if else 但是 Python并不支持三元运算符 ?,它替代的方法是 ...if ... else... Python的三元运算符不像其他语言的三元运算符,其他语言的三元运算符一般是下面所示的格式: 判定条件?为真时的结果:为假时的结果 例如:result=8>7?1:0 然而,在Python中的格式为: 为真时的结果  if …
1.简述编译型与解释型语言的区别,且分别列出你知道的哪些语言属于编译型,哪些属于解释型? 高级语言分为编译型与解释型两种,分别从执行速度.开发效率.跨平台性三个方面说它们的区别. 编译型语言因为执行的是机器码文件,所以执行速度快且不依赖解释器,但每次修改源代码都需要重新编译,所以导致开发效率低,不同的操作系统,调用的底层机器指令不同,所以跨平台性差. 解释型语言需要解释器边把源文件解释成机器指令边交给cpu执行,所以执行速度要比编译型慢很多,但是每次修改时立刻见效,所以开发效率很高,解释器已经做…
这里记录一些python的一些基础知识,主要内容是高阶函数的使用.或许我的心包有一层硬壳,能破壳而入的东西是极其有限的.所以我才不能对人一往情深. python中的高阶函数 一.map().reduce()和filter()函数使用  map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回. def f(x): return x * x print(list(map(f, range(1, 7)))) #…
这里面记录一些python的一些基础知识,数据类型和变量.幸而下雨,雨在街上泼,却泼不进屋内.人靠在一块玻璃窗旁,便会觉得幸福.这个家还是像个家的. python的一些基础使用 一.python中的数据类型和变量知识 print("%s is number %d!" % ('python', 34)) # 把内容写到文件中 logfile = open('huhx.txt', 'a') print('Fatal error: invalid input', file=logfile)…
元祖 Python的元组与列表类似,不同之处在于元组的元素不能修改.元组使用小括号,列表使用方括号. tuple=(1,2,3,4) print(tuple) 访问元祖 通过索引访问,也可以进行切片操作 tuple=(1,2,3,4) print(tuple[2]) print(tuple[1:4]) 修改元祖 说明: python中不允许修改元组的数据,包括不能删除其中的元素. 元组的内置函数count, index tuple=(1,2,3,4,2) print(tuple.count(2)…
列表 格式 namesList = [ 字符串,数字,列表,元祖,集合] 列表中的元素可以是不 同类型的 列表的相关操作 列表中存放的数据是可以进行修改的,比如"增"."删"."改"" <1>插入元素("增") Append(元素):在列表尾部追加一个元素 Extend (列表对象):通过附加迭代元素来扩展列表 Insert(索引,元素) 在索引之前插入对象 list1=[1,2,3,4] list2=[…