首页 > 代码库 > Python:入门笔记之list slices算法、匿名表达式、CGI、数据类型及应用领域

Python:入门笔记之list slices算法、匿名表达式、CGI、数据类型及应用领域

  

    今天有时间,加了个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应用领域:
  1. 系统编程:提供APIApplication Programming Interface应用程序编程接口),能方便进行系统维护和管理,Linux下标志性语言之一,是很多系统管理员理想的编程工具。
  2. 图形处理:有PIL、Tkinter等图形库支持,能方便进行图形处理。
  3. 数学处理:NumPy扩展提供大量与许多标准数学库的接口。
  4. 文本处理:python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。
  5. 数据库编程:程序员可通过遵循Python DB-API(数据库应用程序编程接口)规范的模块与Microsoft SQL Server,Oracle,Sybase,DB2,MySQL、SQLite等数据库通信。python自带有一个Gadfly模块,提供了一个完整的SQL环境。
  6. 网络编程:提供丰富的模块支持sockets编程,能方便快速地开发分布式应用程序。很多大规模软件开发计划例如Zope,Mnet 及BitTorrent. Google都在广泛地使用它。
  7. Web编程:应用的开发语言,支持最新的XML技术。
  8. 多媒体应用:Python的PyOpenGL模块封装了“OpenGL应用程序编程接口”,能进行二维和三维图像处理。PyGame模块可用于编写游戏软件。
  9. pymo引擎:PYMO全称为python memories off,是一款运行于Symbian S60V3,Symbian3,S60V5, Symbian3, Android系统上的AVG游戏引擎。因其基于python2.0平台开发,并且适用于创建秋之回忆memories off)风格的AVG游戏,故命名为PYMO。
  10. 黑客编程:python有一个hack的库,内置了你熟悉的或不熟悉的函数,但是缺少成就感。
  11. 用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




Python:入门笔记之list slices算法、匿名表达式、CGI、数据类型及应用领域