廖雪峰老师的教程上学来的,地址:python高级特性 下面以几个具体示例演示用法: 一.切片 1.1 利用切片实现trim def trim(s): while s[:1] == " " or s[-1:] == " ": # 若第1个元素或最后1个元素为空格 if s[:1] == " ": s = s[1:] if s[-1:] == " ": s = s[:-1] return s 注:字符串可以看做一个list,列表切…
切片 在Python基础篇里,我们知道Python的可序列对象可以通过索引号(下标)来引用对象元素,索引号可以由0开始从左向右依次获取,可以从-1开始由右向左获取.这种方法可以帮助我们依次获取我们想要的元素.而切片可以帮助我们获取被切片元素的副本. 可序列对象切片时所需要的参数[start_index:stop_index:step] start_index:切片的起始位置 stop_index:切片的结束为止(不包括) step:步长,可选参数.默认值是1,但不能为0.表示依次递增. 假设te…
切片:对列表.元组.字符串.字典取中间的一部分,在C中一般是通过for循环拷贝/memcpy/strcat等操作.而python提供了更方便的切片操作符[m:n]:前闭后开,如果从0取m可以省略:如果只用[:]就是切整片:也可以从尾端切片[-m:]:前后的闭区间. 列表生成式:List(range(m,n)):构造一个大于等于m小于n的列表;对于想生成复杂的列表要用列表生成式:[生成对象的模型, for 变量 in 可迭代的对象   附加条件表达式] (1*1,2*2...且能被2整除的列表)方…
定义函数 def my_abs(x):#求绝对值的my_abs函数 if x >= 0: return x else: return –x def nop():#空函数 pass#占位符 参数检查 >>> my_abs(1, 2) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: my_abs() takes exactly…
掌握了python的数据类型,语句和函数,基本上就可以编出很多有用的程序了. 但是在python中,并不是代码越多越好,代码不是越复杂越好,而是越简单越好. 基于这个思想,就引申出python的一些高级特性. 切片 在python中,取list或者是tuple的部分元素是非常常见的操作. L = ["gege","gege","egye"]; [L[0],L[1],L[2]] 上面这个是一个笨办法,因为扩展一下,取前面n个元素就没办法了. r =…
python的高级特性:切片,迭代,列表生成式,生成器,迭代器 #演示切片 k="abcdefghijklmnopqrstuvwxyz" #取前5个元素 k[0:5] k[:5] #后5个元素 k[-5:] #vwxyz #每隔一个取一个 k[::2] #acegikmoqsuwy #原样复制一个 k[:] #演示迭代 d={'a':1,'b':2,'c':3} for key in d: print(key) #结果输出abc, 即输出key, 而且要注意dict的迭代顺序不像lis…
导读:切片系列文章连续写了三篇,本文是对它们做的汇总.为什么要把序列文章合并呢?在此说明一下,本文绝不是简单地将它们做了合并,主要是修正了一些严重的错误(如自定义序列切片的部分),还对行文结构与章节衔接做了大量改动,如此一来,本文结构的完整性与内容的质量都得到了很好的保证. 众所周知,我们可以通过索引值(或称下标)来查找序列类型(如字符串.列表.元组…)中的单个元素,那么,如果要获取一个索引区间的元素该怎么办呢? 切片(slice)就是一种截取索引片段的技术,借助切片技术,我们可以十分灵活地处理…
Python:笔记(4)——高级特性 切片 取一个list或tuple的部分元素是非常常见的操作.Python提供了切片操作符,来完成部分元素的选取 除了上例简单的下标范围取元素外,Python还支持一些其他的骚操作,如下: 迭代 如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration). 列表生成式 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 同…
***这里还是根据网上资料,主要是廖雪峰老师的教程学习的笔记,主要介绍python面向对象的高级特性,笔记不全,只是记录自己觉得容易出错的地方*** 1.python作为一种动态语言,他的动态绑定机制允许在运行过程中动态的给class或者对象实例添加方法和属性,这个在静态语言中比如java是很难做到的: 1)动态绑定属性: 2)动态绑定方法 给一个实例绑定的方法对于其他实例和类都是不可见的:(这里也说明给一个实例动态绑定方法必须用MethodType(func, instance)) 但是给类绑…
内容基本上来自于廖雪峰老师的blog相当于自己手打了一遍,加强加强理解吧. http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000 Python的一些高级特性 Slot python是动态语言,所谓动态,就是可以先创建类的实例,之后再动态绑定属性或方法,比如下边这个例子: class Student(object) pass s=Student() s.name="asd" 注…
python学习2—python3特性与各种运算符 python3与python2相比具有的新特性 在python2中可以使用__future__模块调用python3的特性 print()函数必须带括号 整数除法,写错了也不会出发SyntaxError Unicode字符串和UTF-8字符串.两个字节类:bytes与bytearrays range()函数代替xrange()函数 只能使用next()函数而不是.next()方法 for循环中的变量不会泄漏到全局命名空间中 若比较无序类型,则会…
1.python高级特性 1.1切片 list列表 L=['Mli','add','sal','saoo','Lkkl'] L[0:3]  #即为['Mli','add','sal']  从索引0开始,到索引3结束,但不包括3 L[:3]等价于 L[0:3] L[-2:]  #即为 ['saoo','Lkkl']   最后一个元素的索引为-1 L[-2:-1]  #即为['Lkkl'] L=range(100)  #则L[1:6:2]为 每个两个元素取一个数  所以输出为[2,4] tuple也…
参考: 高级特性 切片 Note 1.掌握了Python的基础语法之后,就可以写出很多很有用的程序了,比如打印1-90的奇数: #!/usr/bin/env python3 L = [] n = 1 while n <= 90 : L.append(n) n = n + 2 print(L) sh-3.2# ./easyprogram.py [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41…
##import sys ##sys.setrecursionlimit(1000) ###关键字参数(**关键字参数名) ###与可变参数不同的是,关键字参数可以在调用函数时,传入带有参数名的参数,这些参数会自动组装成一个 ###dict,参数名为key,参数值为value ##def person(name,age,**kv): ## print('name',name,'age',age,'关键字参数',kv) ##person('jian',18,tell=174,weight=71)#…
0x01 简述 文章主要记录一下python高级特性以及安全相关的问题 python作为脚本语言,其作为高级语言是由c语言开发的,关于python的编译和链接可以看向这里https://github.com/python/cpython(建议自己读读源码,可以更好的理解python的语言特性等.) python标准库: python标准库包含内置模块(有c语言实现,主要提供接入系统的基本功能,例如文件的IO),还有一些python实现的模块提供了类似于其它语言的一些标准解决方案. python自…
1.Python基础学习之高级数组(一) 1.1视图:就是与较大数组共享相同数据的较小数组.Numpy包提供数据视图的概念是为了精确地控制内存的使用方式.  数组视图.切片视图.转置和重塑视图等 数组视图实例: from numpy import* M=array([[1.,2.],[3.,4.]]) v=M[0,:]    #切片是数组的视图(切片视图),它与M享有相同的数据. print(v) v[-1]=0 print(v) print(M)       #注意:如果修改v,M也会同时被修…
前几天写了一篇关于php面向对象基础知识的博客,这两天看了php面向对象的高级特性,写出来记录一下吧,方便以后拿出来复习. 面向对象除了最基本的定义类之外,最主要就是因为面向的一些高级特性,运用这些高级特性,我们可以写出更加合理优雅的代码(ps:上述官方语言都是在网上摘抄,由于没有多少面向对象编程的经验,自己仅仅是记录自己的学习心得).闲话扯完,接下来说说面向对象. (1)静态方法和属性: 在面向对象的基础中,我们对类中属性的访问几乎都是首先进行类的实例化,得到实例化后的对象,通过对象进行访问.…
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 python3.6 Python不但能非常灵活地定义函数,而且本身内置了很多有用的函数,可以直接调用. 一.函数的定义与调用1.定义函数的格式:def 函数名(): 代码示例: def printinfo(): print('----------------------') print('人生苦短,我用Python') print('-----------------…
5.迭代器 由之前的生成器可知,for循环用于可迭代对象:Iterable.包括集合数据类型: list.tuple.dict.set.str 等,以及两种生成器.判断迭代器,使用 isinstance(type, Iterable) .还有的是,可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator.注意定义区分:生成器都是Iterator对象,但list.dict.str虽然是Iterable(可迭代的),却不是Iterator(迭代器). 理解:Python的Ite…
2.迭代 如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration).在Python中,迭代是通过for ... in来完成的. 只要是可迭代对象,无论有无下标,都可以迭代,比如dict就可以迭代key: >>> d = {'a': 1, 'b': 2, 'c': 3} >>> for key in d: ... print(key) ... a b c 还可以迭代value,通过 for valu…
1.切片 有一个list—>L = [1,2,3,4,5,6,7]或tuple—>T = (1,2,3,4,5,6,7),如果想取得前三个元素,怎么操作? 硬方法,也是低效的方法是:L= L[L[0], L[1], L[2]].但是如果数量多,就算是用循环也很麻烦.但是Python提供了,Slice切片操作符.如下: >>> L[0:3] [1,2,3] L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3.即索引0,1,2,正好是3个元素.如果第一个索引是0,还…
4.生成器(generator) 通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间. 创建一个generator,有很多种方法.第一种方法很简单,只要把一个列表生成式的[]改成(),就创建了一个generator: >>> g = (x * x for x in range(1, 11) if x % 2 == 0)…
3.列表生成器(List Comprehensions) 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式.举个例子,要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11)): >>> list(range(1, 11)) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 还有一种常用的简洁的方法: >>> [x * x fo…
切片 切片就是获取一个list.tuple.字符串等的部分元素 l = range(100) #取[0,5)元素 print(l[:5]) #[0, 1, 2, 3, 4] #在[0,99]中每隔10个元素取一个 print( l[::10]) #[0, 10, 20, 30, 40, 50, 60, 70, 80, 90] #取最后五个元素 print( l[-5 : ]) #[95, 96, 97, 98, 99] str = "www.genekang.com" #也可以用来截取…
一.切片(Slice) 在很多编程语言中,针对字符串提供了很多截取函数(i.e.  substring),目的就是对字符串切片.python中没有针对字符串的截取函数,需要通过“切片”来完成. 取一个list或tuple的部分元素可以用切片 格式:  假定list或tuple组成的元素组名为m m[起始值:终止值:步长] 说明: a. 起始值如果是0,可以省略,但是中间的冒号(:)一定要带上 b. 起始值,终止值限定的是索引范围. c. 如果从前面开始取数,那么索引时不包括索引[终止值],因为索…
切片(发现了一些新操作) 参考链接:https://www.liaoxuefeng.com/wiki/1016959663602400/1017269965565856 间隔取元素(可以取负数,负数就是从最后一个开始倒着取) >>> L=[i for i in range(20)] 所有数,每两个取一个 >>> L1=L[::2] >>> L1 [0, 2, 4, 6, 8, 10, 12, 14, 16, 18] 前10个数,每两个取一个 可以用来取…
题记: 在python中,代码不是越多越好,而是越少越好.代码不是越复杂越好,而是越简单越好. 1行代码能实现的功能,绝不写5行代码. 请始终牢记:代码越少,开发效率越高. 切片 >>> L=list(range(11)) #生成数0~10 >>> L [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> L[:5] #输出0~4 [0, 1, 2, 3, 4] >>> L[-5:] #输出倒数第5个~最后 […
切片的目的是实现取一个list或tuple的部分元素 学习自廖雪峰,个人理解如下: 取列表L的前三个元素 >>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'] -----------------------------------------------------------方法一: 笨办法: >>> [L[], L[], L[]] ['Michael', 'Sarah', 'Tracy'] 之所以是笨办法是因为扩展…
1.切片.使用“[”和“]”即可,类似Matlab,可以切list,tuple,字符串等. 2.迭代.Python内置的enumerate函数可以把一个list变成索引-元素对. 3.列表生成式.列表生成式则可以用一行语句代替循环生成上面的list:   >>> [x * x for x in range(1, 11)] [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]   写列表生成式时,把要生成的元素x * x放到前面,后面跟for循环,就可以把list创…
函数 编写     定义一个函数要用def语句    def sum(i,n):   ⚠有冒号 返回多值     实际上是返回一个tuple 定义默认参数    默认参数的作用是简化调用   def power(x,n=2)   默认参数只能定义在必需参数后面     使用时,power(2)或power(3,4) 定义可变参数     可变参数的名字前面有个*号,我们可以传入0个,1个或多个参数给可变参数 Python解释器将传入的一组参数组装成一个tuple传递给参数 切片 对list切片…