今天有时间,加了个python遇到个问题,然后延伸出一系列问题,有关slice,step及仔细研究了下stride的计算方法,结果搞了2个小时左右,入门就是痛苦啊,闲话不多说了,直接上问题上代码:
<span style="font-size:18px;">>>> a="python" >>> print(a[::-1]) nohtyp >>> >>> print(a[:-1]) pytho</span>
针对这个计算,我的理解是string后面跟的[]里面是index,表示对string中字符的索引。
比如[0:n]表示string的中第一个到第n-1个字符,是用0来表示第一个字符的位置。
如果不写开头或结尾,就默认从头开始,或直到最后。例如[:3]其实就是[0:3],就是[0],[1],[2]这三个;[3:]则代表第四个到最后一个。然后如果index中时负数,则表示从后往前算,倒着数。
- 注意一点,前后索引都是从0开始计算。
<span style="font-size:18px;">a=[2,3,1] print a[-1:-2:-1]</span>
- slice 有关片的计算
临时届值b=[-1:-2] 实际计算值为[], 故,不存在此界值;
有关片的计算,之前一直很糊涂,一直以为是分步计算,有一个中间值,后来仔细查了查,才明白是没有中间值的,这其中有一个步长的概念
起点,终点,步长
Python支持列表切割(list slices),可以取得完整列表的一部分。支持切割操作的类型有str, bytes, list, tuple等。它的 语法是...[left:right]或者...[left:right:stride]。
假定nums变量的值是[1, 3, 5, 7, 8, 13, 20],那么下面几个语句为真:
nums[2:5] == [5, 7, 8] 从下标为2的元素切割到下标为5的元素,但不包含下标为5的元素。
nums[1:] == [3, 5, 7, 8, 13, 20] 切割到最后一个元素。
nums[:-3] == [1, 3, 5, 7] 从最开始的元素一直切割到倒数第3个元素。
nums[:] == [1, 3, 5, 7, 8, 13, 20] 返回所有元素。改变新的列表不会影响到nums。
nums[1:5:2] == [3, 7] 从下标为1的元素切割到下标为5的元素但不包含下标为5的元素,且步长为2。
add=lambda x, y : x + y
- Python匿名函数之lambda表达式
1. lambda表达式用于创建小型的匿名函数,此函数在创建时不需要使用def关键字。
2. lambda表达式可以带有任意数量的参数。
3. lambda表达式不能访问全局变量,只能访问自身参数
4. lambda表达式不能使用print语句输出结果。
lambda表达式只有一句,形式如下所示:
lambda [var1, [var2,...]]:expression
求和的lambda表达式如下所示:
sm = lambda var1, var2:var1 +var2
print sm(10, 20)
程序输出结果为:
30
- CGI 意思为 Common Gateway Interface,。一种基于浏览器的输入、在Web服务器上运行的程序方法。CGI脚本使你的浏览器与用户能交互.这个脚本通常象服务器和系统中其他程序如数据库的桥梁。
可执行脚本。
下面是在百度百科里找的一些基础,有助于培养自己的技能知识,就贴出来了,没兴趣的可以不看。
- Python数据类型:
Python内置丰富的数据类型。与Java、C++相比,这些数据类型有效地减少代码的长度。下面这个列表简要地描述了Python内置数据类型(适用于Python 3.x):
类型 |
描述 |
例子 |
备注 |
---|---|---|---|
str |
一个由字符组成的不可更改的有串行。 |
‘Wikipedia‘ "Wikipedia" """Spanning multiple lines""" |
在Python 3.x里,字符串由Unicode字符组成 |
bytes |
一个由字节组成的不可更改的有串行。 |
b‘Some ASCII‘ b"Some ASCII" |
|
list |
可以包含多种类型的可改变的有串行 |
[4.0, ‘string‘, True] |
|
tuple |
可以包含多种类型的不可改变的有串行 |
(4.0, ‘string‘, True) |
|
set, frozenset |
与数学中集合的概念类似。无序的、每个元素唯一。 |
{4.0, ‘string‘, True} frozenset([4.0, ‘string‘, True]) |
|
dict |
一个可改变的由键值对组成的无串行。 |
{‘key1‘: 1.0, 3: False} |
|
int |
精度不限的整数 |
42 |
|
float |
浮点数。精度与系统相关。 |
3.1415927 |
|
complex |
复数 |
3+2.7j |
|
bool |
逻辑值。只有两个值:真、假 |
True False |
除了各种数据类型,Python语言还用类型来表示函数、模块、类型本身、对象的方法、编译后的Python代码、运行时信息等等。因此,Python具备很强的动态性。
- Python应用领域:
- 系统编程:提供API(Application
Programming Interface应用程序编程接口),能方便进行系统维护和管理,Linux下标志性语言之一,是很多系统管理员理想的编程工具。 - 图形处理:有PIL、Tkinter等图形库支持,能方便进行图形处理。
- 数学处理:NumPy扩展提供大量与许多标准数学库的接口。
- 文本处理:python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。
- 数据库编程:程序员可通过遵循Python DB-API(数据库应用程序编程接口)规范的模块与Microsoft
SQL Server,Oracle,Sybase,DB2,MySQL、SQLite等数据库通信。python自带有一个Gadfly模块,提供了一个完整的SQL环境。 - 网络编程:提供丰富的模块支持sockets编程,能方便快速地开发分布式应用程序。很多大规模软件开发计划例如Zope,Mnet
及BitTorrent. Google都在广泛地使用它。 - Web编程:应用的开发语言,支持最新的XML技术。
- 多媒体应用:Python的PyOpenGL模块封装了“OpenGL应用程序编程接口”,能进行二维和三维图像处理。PyGame模块可用于编写游戏软件。
- pymo引擎:PYMO全称为python memories off,是一款运行于Symbian S60V3,Symbian3,S60V5, Symbian3, Android系统上的AVG游戏引擎。因其基于python2.0平台开发,并且适用于创建秋之回忆(memories
off)风格的AVG游戏,故命名为PYMO。 - 黑客编程:python有一个hack的库,内置了你熟悉的或不熟悉的函数,但是缺少成就感。
- 用Python写简单爬虫。首先,要通过urllib2这个Module获得对应的HTML源码。
<span style="font-size:18px;">import urllib2 url='http://www。baidu。com/s?wd=cloga' content=urllib2.urlopen(url).read()</span>
通过上面这三句就可以将URL的源码存在content变量中,其类型为字符型。接下来是要从这堆HTML源码中提取我们需要的内容。用Chrome查看一下对应的内容的代码(也可以用Firefox的Firebug)。可以看到url的信息存储在span标签中,要获取其中的信息可以用正则式。
PS:此文仅做记录交流,不做他用。
参考资料:http://baike.baidu.com/view/21087.htm