Python 2.7 Tutorial 中文版

循环可以有一个 else 子句;它在循环迭代完整个列表(对于 for )或执行条件 为 false (对于 while )时执行,但循环被 break 中止的情况下不会执行。

以下搜索素数的示例程序演示了这个子句

for n in range(2, 10):   for x in range(2, n):     if n % x == 0:       print n, ‘equals‘, x, ‘*‘, n/x       break   

  else:   # loop fell through without finding a factor   print n, ‘is a prime number‘
默认值在函数 定义 作用域被解析,如下所示
i = 5
def f(arg=i):
print arg
i = 6
f()
will print 5.

引入一个形如 **name 的参数时,它接收一个字典(参见 typesmapping ) ,该字典包含了所有未出现 在形式参数列表中的关键字参数。

这里可能还会组合使用一个形如 *name (下一小节詳細介绍) 的形 式 参数,它接收一个元组(下一节中会详细介绍),包含了所有没有出现在形式 参数列表中的参数值。

( *name 必须在 **name 之前出现) 例如,我们这样定 义一个函数

def cheeseshop(kind, *arguments, **keywords):
  print "-- Do you have any", kind, "?"
  print "-- I‘m sorry, we‘re all out of", kind
  for arg in arguments: print arg
  print "-" * 40
  keys = keywords.keys()
  keys.sort()
  for kw in keys: print kw, ":", keywords[kw]
It could be called like this:
它可以像这样调用
cheeseshop("Limburger", "It‘s very runny, sir.",
"It‘s really very, VERY runny, sir.",
shopkeeper=‘Michael Palin‘,
client="John Cleese",
sketch="Cheese Shop Sketch")

and of course it would print:
当然它会按如下内容打印
-- Do you have any Limburger ?
-- I‘m sorry, we‘re all out of Limburger
It‘s very runny, sir.
It‘s really very, VERY runny, sir.
----------------------------------------
client : John Cleese
shopkeeper : Michael Palin
sketch : Cheese Shop Sketch

出于实际需要,有几种通常在函数式编程语言例如 Lisp 中出现的功能加入到了 Python 。

通过 lambda 关键字,可以创建短小的匿名函数。这里有一个函数返 回它的两个参数的和: lambda a, b: a+b 。

Lambda 形式可以用于任何需要的 函数对象。出于语法限制,它们只能有一个单独的表达式。

语义上讲,它 们只是 普通函数定义中的一个语法技巧。类似于嵌套函数定义,lambda 形式可以从外部作用域引用变量。

>>> def make_incrementor(n):
... return lambda x: x + n
...
>>> f = make_incrementor(42)
>>> f(0)
42
>>> f(1)
43

你也可以把链表当做队列使用,队列作为特定的数据结构,最先进入的元素最先 释放(先进先出)。不 过,列表这样用效率不高。

相对来说从列表末尾添加和弹 出很快;在头部插入和弹出很慢(因为,为了一 个元素,要移动整个列表中的所 有元素)。

要实现队列,使用 collections.deque ,它为在首尾两端快速插入和 删除而设计。例如

>>> from collections import deque
>>> queue = deque(["Eric", "John", "Michael"])
>>> queue.append("Terry") # Terry arrives
>>> queue.append("Graham") # Graham arrives
>>> queue.popleft() # The first to arrive now leaves
‘Eric‘
>>> queue.popleft() # The second to arrive now leaves
‘John‘
>>> queue # Remaining queue in order of arrival
deque([‘Michael‘, ‘Terry‘, ‘Graham‘])

filter(function, sequence) 返回一个sequence(序列),包括了给定序列中所有调用 function(item) 后返回值为true的元素。(如果可能的话, 会返回相同的类型)。

如果该序列(sequence) 是一个 string (字符串)或者 tuple (元组),返回值必定是同一类型,否则,它 总是 list 。

>>> def f(x): return x % 2 != 0 and x % 3 != 0
...
>>> filter(f, range(2, 25))
[5, 7, 11, 13, 17, 19, 23]

map(function, sequence) 为每一个元素依次调用 function(item) 并将返回值 组成一个链表返回。例 如,以下程序计算立方

>>> def cube(x): return x*x*x
...
>>> map(cube, range(1, 11))
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]

可以传入多个序列,函数也必须要有对应数量的参数,执行时会依次用各序列上 对应的元素来调用函数 (如果某些序列比其它的短,就用 None 来代替)。

如果把 None做为一个函数传入,则直接返回参数做为替代。例如

>>> seq = range(8)
>>> def add(x, y): return x+y
...
>>> map(add, seq, seq)
[0, 2, 4, 6, 8, 10, 12, 14]

reduce(func, sequence) 返回一个单值,它是这样构造的:首先以序列的 前两个元素调用函数 function ,再以返回值和第三个参数调用,依次执行下去。

例如,以 下程序计算 1 到 10 的整数之和

>>> def add(x,y): return x+y
...
>>> reduce(add, range(1, 11))
55
时间: 2024-10-03 22:15:30

Python 2.7 Tutorial 中文版的相关文章

《Python自然语言处理》中文版-纠错【更新中。。。】

最近在看<Python自然语言处理>中文版这本书,可能由于是从py2.x到py3.x,加上nltk的更新的原因,或者作者的一些笔误,在书中很多代码都运行不能通过,下面我就整理一下一点有问题的代码. 第一章: p3.该处为小建议,书中没有错误:关于nltk.book的下载,最好下载到'/nltk_data'文件夹下,如'D:/nltk_data' p7.text3.generate(). generate()函数用法已经过时,正在查找最新的方法. p18.关于FreqDist()函数发生了更新,

分享《Python金融实战》中文版PDF+英文版PDF+源代码

下载:https://pan.baidu.com/s/1J45xnVTFz-EbpGsQmRrAjA 更多资料请见:http://blog.51cto.com/3215120 <Python金融实战>中文版PDF+英文版PDF+源代码中英文两版可以对比学习.配套源代码: 本书通过12章内容介绍了Python在金融领域的应用,从Python的安装.基础语法,再到一系列简单的编程示例,本书循序渐进地引导读者学习Python.同时,本书还结合Python的各个模块以及金融领域中的期权价格.金融图形绘

分享《Python神经网络编程》中文版PDF+英文版PDF+源代码

下载:https://pan.baidu.com/s/1JGUInQlae5D7sGsrbeX7aw <Python神经网络编程>中文版PDF+英文版PDF+源代码彩色配图,文字可以复制粘贴,配套源代码. 其中中文版如图: 原文地址:http://blog.51cto.com/3072115/2311193

《流畅的Python》高清中文版PDF_mobi+高清英文版PDF_mobi+源代码大全套

资源链接:https://pan.baidu.com/s/1u9FkCCQ-2zjRQDDHuZV6pQ<流畅的Python>高清中文版PDF和mobi+高清英文版PDF和mobi+源代码手机可阅读mobi格式,电脑可阅读PDF格式,外加源代码大全套.久负盛名的python入门书籍.官方高清中文版, 带目录书签,文字可复制粘贴:高清英文版, 带目录书签,文字可复制粘贴:中文和英文两版对比学习:讲解详细并配有源代码.其中,高清中文版如图: 原文地址:http://blog.51cto.com/1

Python爬虫抓取 python tutorial中文版,保存为word

看到了中文版的python tutorial,发现是网页版的,刚好最近在学习爬虫,想着不如抓取到本地 首先是网页的内容 查看网页源码后发现可以使用BeautifulSoup来获取文档的标题和内容,并保存为doc文件. 这里需要使用from bs4 import BeautifulSoup 来导入该模块 具体代码如下: # 输出所在网址的内容from bs4 import BeautifulSoup def introduce(url): res = requests.get(url) res.e

Python PEP8 编码规范中文版

原文链接:https://legacy.python.org/dev/peps/pep-0008/ 参考:https://blog.csdn.net/ratsniper/article/details/78954852 Code lay-out 代码布局 Indentation 缩进    Tabs or Spaces 制表符还是空格    Maximum Line Length 行的最大长度    Should a line break before or after a binary ope

《教孩子学编程 Python语言版》中文版PDF+英文版PDF+源代码

下载:https://pan.baidu.com/s/1wSG8dvW86G_xn-6XO2I3DQ 中英文两版可以对比学习. 配套源代码: 经典书籍,讲解详细: 中文版如图 原文地址:http://blog.51cto.com/4820691/2311155

(转)Python PEP8 编码规范中文版

转:https://blog.csdn.net/ratsniper/article/details/78954852 原文链接:http://legacy.python.org/dev/peps/pep-0008/ item detail PEP 8 Title Style Guide for Python Code Version c451868df657 Last-Modified 2016-06-08 10:43:53 -0400 (Wed, 08 Jun 2016) Author Gui

Python PEP8 编码规范中文版-译自官网文件

写在前面(自补):初听PEP8一头雾水,不知所谓.啥是PEP8?为啥叫PEP8?PEP8是干啥的?-先了解下PEP吧. PEP是什么? PEP的全称是Python Enhancement Proposals,其中Enhancement是增强改进的意思,Proposals则可译为提案或建议书,所以合起来,比较常见的翻译是Python增强提案或Python改进建议书. 我个人倾向于前一个翻译,因为它更贴切.Python核心开发者主要通过邮件列表讨论问题.提议.计划等,PEP通常是汇总了多方信息,经过