-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathpython.mm.htm
More file actions
130 lines (117 loc) · 253 KB
/
python.mm.htm
File metadata and controls
130 lines (117 loc) · 253 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<html xmlns="http://www.w3.org/1999/xhtml"><!--This file has been created with freemind2html.xsl--><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Python 学习笔记</title><link rel="stylesheet" href="/stylesheets/master.css" type="text/css"></link><link rel="stylesheet" href="/stylesheets/syntax.css" type="text/css"></link><link rel="stylesheet" href="/docbook/includes/css/freemind2html.css" type="text/css"></link><link rel="stylesheet" href="/docbook/includes/css/docbook.css" type="text/css"></link><meta name="generator" content="FreeMind-XSL Stylesheet (see: http://freemind-xsl.dev.slash-me.net/ for details)"></meta><script type="text/javascript"><!--
function toggle(id)
{
div_el = document.getElementById(id);
img_el = document.getElementById('img'+id);
if (div_el.style.display != 'none')
{
div_el.style.display='none';
img_el.src = '/docbook/includes/images/freemind/show.png';
}
else
{
div_el.style.display='block';
img_el.src = '/docbook/includes/images/freemind/hide.png';
};
};
--></script></head><body><script type="text/javascript" src="/docbook/includes/js/header.js"></script><script type="text/javascript">
write_header("/docbook");
</script><h1>Python 学习笔记</h1><script type="text/javascript" src="/docbook/includes/mmflash/mmflash.js"></script><style type="text/css">
#flashcontent {
height: 100%;
}
</style><script type="text/javascript"><!--
var hasReqestedVersion = DetectFlashVer(7, 0, 19);
if (hasReqestedVersion) {
FlashObject(
"movie", "/docbook/includes/mmflash/visorFreemind.swf",
"width", "100%",
"height", "500",
"align", "middle",
"quality", "high",
"bgcolor", "#FFFFFF",
"id", "visorFreeMind",
"name", "visorFreeMind",
"openUrl", "_blank",
"initLoadFile", "python.mm",
"startCollapsedToLevel", "5",
'codebase', 'http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab#version=7,0,19,0',
"pluginspage", "http://www.adobe.com/go/getflashplayer"
);
} else {
var alternateContent = '<div id="flashcontent">'
+ 'This content requires the Adobe Flash Player. <br/>'
+ 'Flash Plugin version 7.0 or higher is needed. '
+ '<a href="http://www.adobe.com/go/getflashplayer/">Get Flash</a>'
+ '</div>';
document.write(alternateContent);
}
--></script><noscript><div id="flashcontent">
Flash plugin or Javascript are turned off.
Activate both and reload to view the mindmap.<br></br><a href="http://www.adobe.com/go/getflash/">Get Flash</a></div></noscript><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp2080")' id="imgidp2080"></img><a id="FMFreemind_Link_5063362FM"></a><div class="nodecontent">Python 学习笔记</div><div class="content" id="idp2080"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp2688")' id="imgidp2688"></img><a id="FMFreemind_Link_1676261912FM"></a><div class="nodecontent">参考</div><div class="content" id="idp2688"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_384758686FM"></a><div class="nodecontent"><a href="http://diveintopython.org/">diveintopython.org</a> <a href="http://diveintopython.org/"><img src="/docbook/includes/images/freemind/ilink.png" alt="User Link" style="border-width:0"></img></a></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp4896")' id="imgidp4896"></img><a id="FMFreemind_Link_14359071FM"></a><div class="nodecontent"> Python 的语法特点<br></br>(Something strange ……)</div><div class="content" id="idp4896"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1326128661FM"></a><div class="nodecontent">代码缩进不再是美观的需要,而称为语法的一部分!</div> <a onclick="getVisibleParents('FMFreemind_Link_6385624FM')" href="#FMFreemind_Link_6385624FM"><img src="/docbook/includes/images/freemind/ilink.png" class="ilink" alt="Arrow Link"></img></a></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1159745883FM"></a><div class="nodecontent">函数的参数传递:支持关键字参数传递使参数顺序不再重要!</div> <a onclick="getVisibleParents('FMFreemind_Link_1735733607FM')" href="#FMFreemind_Link_1735733607FM"><img src="/docbook/includes/images/freemind/ilink.png" class="ilink" alt="Arrow Link"></img></a></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_853358091FM"></a><div class="nodecontent">内嵌代码中的帮助文档: DocStrings</div> <a onclick="getVisibleParents('FMFreemind_Link_232415690FM')" href="#FMFreemind_Link_232415690FM"><img src="/docbook/includes/images/freemind/ilink.png" class="ilink" alt="Arrow Link"></img></a></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1151022864FM"></a><div class="nodecontent">三引号的字符串</div> <a onclick="getVisibleParents('FMFreemind_Link_1685393530FM')" href="#FMFreemind_Link_1685393530FM"><img src="/docbook/includes/images/freemind/ilink.png" class="ilink" alt="Arrow Link"></img></a></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_595730581FM"></a><div class="nodecontent">while 循环和 for 循环可以带 else 语句块</div> <a onclick="getVisibleParents('FMFreemind_Link_1810326334FM')" href="#FMFreemind_Link_1810326334FM"><img src="/docbook/includes/images/freemind/ilink.png" class="ilink" alt="Arrow Link"></img></a></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1551054408FM"></a><div class="nodecontent">交换赋值:a,b = b,a</div> <a onclick="getVisibleParents('FMFreemind_Link_1776152631FM')" href="#FMFreemind_Link_1776152631FM"><img src="/docbook/includes/images/freemind/ilink.png" class="ilink" alt="Arrow Link"></img></a></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1555681612FM"></a><div class="nodecontent">Class 中 method(方法)的第一个参数非常特殊:需要声明(self),调用时却不提供(Python 自动添加)。</div> <a onclick="getVisibleParents('FMFreemind_Link_27513138FM')" href="#FMFreemind_Link_27513138FM"><img src="/docbook/includes/images/freemind/ilink.png" class="ilink" alt="Arrow Link"></img></a></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_189034568FM"></a><div class="nodecontent">类的构造函数名称为 __init__(self, ...)</div> <a onclick="getVisibleParents('FMFreemind_Link_680072536FM')" href="#FMFreemind_Link_680072536FM"><img src="/docbook/includes/images/freemind/ilink.png" class="ilink" alt="Arrow Link"></img></a></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_468584149FM"></a><div class="nodecontent">类的 Class 变量 和 Object 变量</div> <a onclick="getVisibleParents('FMFreemind_Link_898202331FM')" href="#FMFreemind_Link_898202331FM"><img src="/docbook/includes/images/freemind/ilink.png" class="ilink" alt="Arrow Link"></img></a></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_813960083FM"></a><div class="nodecontent">一切皆是对象:甚至字符串,变量,函数,都是对象</div> <a onclick="getVisibleParents('FMFreemind_Link_767102022FM')" href="#FMFreemind_Link_767102022FM"><img src="/docbook/includes/images/freemind/ilink.png" class="ilink" alt="Arrow Link"></img></a></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp30752")' id="imgidp30752"></img><a id="FM_FM"></a><div class="nodecontent">获得帮助</div><div class="content" id="idp30752"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_16677714FM"></a><div class="nodecontent">如何获得帮助?</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1475585246FM"></a><div class="nodecontent">1. 进入 python 命令行</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1440292726FM"></a><div class="nodecontent">2. 包含要查询的模组。如: import sys</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1878584703FM"></a><div class="nodecontent">3. 显示该模组包含的属性。命令: dir(sys)</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_340870475FM"></a><div class="nodecontent">4. 获取该模组的帮助。如: help(sys)</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp35616")' id="imgidp35616"></img><a id="FMFreemind_Link_1471460438FM"></a><div class="nodecontent">源文件的字符集设置</div><div class="content" id="idp35616"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_605232114FM"></a><div class="nodecontent">为支持中文,需要在源码的第一行或第二行(一般是第二行)添加特殊格式的注释,声明源文件的字符集。默认为 7-bit ASCII</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp37872")' id="imgidp37872"></img><a id="FMFreemind_Link_63794267FM"></a><div class="nodecontent">格式为: # -*- coding: <encoding-name> -*-</div><div class="content" id="idp37872"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1082990071FM"></a><div class="nodecontent">参见: http://www.python.org/dev/peps/pep-0263/</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_753434116FM"></a><div class="nodecontent">如:设置 gbk 编码:<br></br><br></br>#!/usr/bin/python<br></br># -*- coding: gbk -*-
</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1475190418FM"></a><div class="nodecontent">如: 设置 utf-8 编码<br></br><br></br>#!/usr/bin/python<br></br># -*- coding: utf-8 -*-</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_466786807FM"></a><div class="nodecontent">注: emacs 能够也能识别该语法。而 VIM 通过 # vim:fileencoding=<encoding-name> 来识别</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp42208")' id="imgidp42208"></img><a id="FMFreemind_Link_1960349888FM"></a><div class="nodecontent">常量和变量</div><div class="content" id="idp42208"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp43232")' id="imgidp43232"></img><a id="FMFreemind_Link_501043280FM"></a><div class="nodecontent">变量</div><div class="content" id="idp43232"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp44064")' id="imgidp44064"></img><a id="FMFreemind_Link_1064733922FM"></a><div class="nodecontent">变量名规则和 C 的相类似</div><div class="content" id="idp44064"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_215999424FM"></a><div class="nodecontent">合法的变量名,如: __my_name, name_23, a1b2_c3 等</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp45888")' id="imgidp45888"></img><a id="FMFreemind_Link_452323229FM"></a><div class="nodecontent">保留关键字(不能与之重名)</div><div class="content" id="idp45888"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_499745067FM"></a><div class="nodecontent">and def exec if not return<br></br>assert del finally import or try<br></br>break elif for in pass while<br></br>class else from is print yield<br></br>continue except global lambda raise</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1704092418FM"></a><div class="nodecontent">没有类型声明,直接使用</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp49104")' id="imgidp49104"></img><a id="FMFreemind_Link_291658553FM"></a><div class="nodecontent">类型综述 / 查看类型</div><div class="content" id="idp49104"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp49936")' id="imgidp49936"></img><a id="FMFreemind_Link_568393487FM"></a><div class="nodecontent">int</div><div class="content" id="idp49936"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_555801952FM"></a><div class="nodecontent">>>> type(17)<br></br><type 'int'></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp51696")' id="imgidp51696"></img><a id="FMFreemind_Link_654892393FM"></a><div class="nodecontent">float</div><div class="content" id="idp51696"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_852207875FM"></a><div class="nodecontent">>>> type(3.2)<br></br><type 'float'></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp53584")' id="imgidp53584"></img><a id="FMFreemind_Link_739162824FM"></a><div class="nodecontent">long</div><div class="content" id="idp53584"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1458004094FM"></a><div class="nodecontent">>>> type(1L)<br></br><type 'long'></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1581630263FM"></a><div class="nodecontent">>>> type(long(1))<br></br><type 'long'></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp56240")' id="imgidp56240"></img><a id="FMFreemind_Link_1372493022FM"></a><div class="nodecontent">bool</div><div class="content" id="idp56240"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1963555462FM"></a><div class="nodecontent">True 和 False,注意大小写</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_878456331FM"></a><div class="nodecontent">>>> type(True)<br></br><type 'bool'></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1021462562FM"></a><div class="nodecontent">>>> type(1>2)<br></br><type 'bool'></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp59680")' id="imgidp59680"></img><a id="FMFreemind_Link_1844116283FM"></a><div class="nodecontent">string</div><div class="content" id="idp59680"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_641666901FM"></a><div class="nodecontent">>>> type("Hello, World!")<br></br><type 'str'>
</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp61488")' id="imgidp61488"></img><a id="FMFreemind_Link_1232675237FM"></a><div class="nodecontent">>>> type("WorldHello"[0])<br></br><type 'str'></div><div class="content" id="idp61488"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1056246980FM"></a><div class="nodecontent">即 Python 没有 Char 类型</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp63536")' id="imgidp63536"></img><a id="FMFreemind_Link_833350630FM"></a><div class="nodecontent">list</div><div class="content" id="idp63536"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1050612002FM"></a><div class="nodecontent">>>> type(['a','b','c'])<br></br><type 'list'>
</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_811492287FM"></a><div class="nodecontent">>>> type([])<br></br><type 'list'></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp66208")' id="imgidp66208"></img><a id="FMFreemind_Link_470676304FM"></a><div class="nodecontent">tuple</div><div class="content" id="idp66208"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_98499586FM"></a><div class="nodecontent">>>> type(('a','b','c'))<br></br><type 'tuple'>
</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1230546777FM"></a><div class="nodecontent">>>> type(())<br></br><type 'tuple'></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp68880")' id="imgidp68880"></img><a id="FMFreemind_Link_1896767557FM"></a><div class="nodecontent">dict</div><div class="content" id="idp68880"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1353372326FM"></a><div class="nodecontent">>>> type({'color1':'red','color12':'blue'})<br></br><type 'dict'></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_285338547FM"></a><div class="nodecontent">>>> type({})<br></br><type 'dict'></div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp71696")' id="imgidp71696"></img><a id="FMFreemind_Link_1556810064FM"></a><div class="nodecontent">字符串</div><div class="content" id="idp71696"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp72688")' id="imgidp72688"></img><a id="FMFreemind_Link_1685393530FM"></a><div class="nodecontent">三引号</div><div class="content" id="idp72688"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1868237005FM"></a><div class="nodecontent">三引号:''' 或者 """ 是 python 的发明。三引号可以包含跨行文字,其中的引号不必转义。(即内容可以包含的换行符和引号)</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp74816")' id="imgidp74816"></img><a id="FMFreemind_Link_880381431FM"></a><div class="nodecontent">如</div><div class="content" id="idp74816"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_917870371FM"></a><div class="nodecontent">'''This is a multi-line string. This is the first line.<br></br>This is the second line.<br></br>"What's your name?," I asked.<br></br>He said "Bond, James Bond."<br></br>'''</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp76944")' id="imgidp76944"></img><a id="FMFreemind_Link_796524761FM"></a><div class="nodecontent">单引号和双引号都可以用于创建字符串。</div><div class="content" id="idp76944"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1358408962FM"></a><div class="nodecontent">注意,单引号和双引号没有任何不同,不像 PHP, PERL</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1370961192FM"></a><div class="nodecontent">\ 作为转义字符,\ 用在行尾作为续行符</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp79504")' id="imgidp79504"></img><a id="FMFreemind_Link_1426256562FM"></a><div class="nodecontent">r 或者 R 作为前缀,引入 Raw String</div><div class="content" id="idp79504"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1050879486FM"></a><div class="nodecontent">例如: r"Newlines are indicated by \n."</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1157669723FM"></a><div class="nodecontent">在处理常规表达式,尽量使用 Raw String,免得增加反斜线。例如 r'\1' 相当于 '\\1'。</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp82512")' id="imgidp82512"></img><a id="FMFreemind_Link_327171220FM"></a><div class="nodecontent">u 或者 U 作为前缀,引入 Unicode</div><div class="content" id="idp82512"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1546360476FM"></a><div class="nodecontent">例如: u"This is a Unicode string."</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp84224")' id="imgidp84224"></img><a id="FMFreemind_Link_1396339757FM"></a><div class="nodecontent">u, r 可以一起使用,u在r前</div><div class="content" id="idp84224"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp85248")' id="imgidp85248"></img><a id="FMFreemind_Link_612402216FM"></a><div class="nodecontent">例如 ur"\u0062\n" 包含三个字符</div><div class="content" id="idp85248"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_425092761FM"></a><div class="nodecontent">\u0062</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_120860978FM"></a><div class="nodecontent">\\</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_206673594FM"></a><div class="nodecontent">n</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp88784")' id="imgidp88784"></img><a id="FMFreemind_Link_1320252991FM"></a><div class="nodecontent">字符串连接:两个字符串并排,则表示两个字符串连接在一起</div><div class="content" id="idp88784"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1490219006FM"></a><div class="nodecontent">'What\'s ' "your name?" 自动转换为 "What's your name?" .</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_935941926FM"></a><div class="nodecontent">作用一:减少 \ 作为续行符的使用。</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp91456")' id="imgidp91456"></img><a id="FMFreemind_Link_587526031FM"></a><div class="nodecontent">作用二:可以为每段文字添加注释。如:</div><div class="content" id="idp91456"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_810102773FM"></a><div class="nodecontent">re.compile("[A-Za-z_]" # letter or underscore<br></br> "[A-Za-z0-9_]*" # letter, digit or underscore<br></br> )</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp93712")' id="imgidp93712"></img><a id="FMFreemind_Link_522710781FM"></a><div class="nodecontent">用括号包含多行字串</div><div class="content" id="idp93712"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_678514138FM"></a><div class="nodecontent">>>> test= ("case 1: something;" # test case 1<br></br>... "case 2: something;" #test case 2<br></br>... "case 3: something." #test case 3<br></br>... )<br></br>>>> test<br></br>'case 1: something;case 2: something;case 3: something.'<br></br>
</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp95920")' id="imgidp95920"></img><a id="FMFreemind_Link_1357940396FM"></a><div class="nodecontent">类似于 sprintf 的字符串格式化</div><div class="content" id="idp95920"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1658963897FM"></a><div class="nodecontent">header1 = "Dear %s," % name</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_760684249FM"></a><div class="nodecontent">header2 = "Dear %(title)s %(name)s," % vars()</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp98400")' id="imgidp98400"></img><a id="FMFreemind_Link_1656319230FM"></a><div class="nodecontent">字符串操作</div><div class="content" id="idp98400"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp99392")' id="imgidp99392"></img><a id="FMFreemind_Link_42868540FM"></a><div class="nodecontent">String slices</div><div class="content" id="idp99392"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp100384")' id="imgidp100384"></img><a id="FMFreemind_Link_1674466518FM"></a><div class="nodecontent">[n] : 字符串的第 n+1 个字符</div><div class="content" id="idp100384"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1211559553FM"></a><div class="nodecontent">print "WorldHello"[0]</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_565827773FM"></a><div class="nodecontent">str="WorldHello"<br></br>print str[len(str)-1]</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp103088")' id="imgidp103088"></img><a id="FMFreemind_Link_719419458FM"></a><div class="nodecontent">[n:m] : 返回从 n 开始到 m 结束的字符串,包括 n, 不包括 m</div><div class="content" id="idp103088"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_634227633FM"></a><div class="nodecontent">>>> s = "0123456789"<br></br>>>> print s[0:5]<br></br>01234<br></br>>>> print s[3:5]<br></br>34<br></br>>>> print s[7:21]<br></br>789<br></br>>>> print s[:5]<br></br>01234<br></br>>>> print s[7:]<br></br>789<br></br>>>> print s[21:]<br></br> </div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp105520")' id="imgidp105520"></img><a id="FMFreemind_Link_1777436412FM"></a><div class="nodecontent">len : 字符串长度</div><div class="content" id="idp105520"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1314938153FM"></a><div class="nodecontent">len("WorldHello")</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp107200")' id="imgidp107200"></img><a id="FMFreemind_Link_103636926FM"></a><div class="nodecontent">字符串比较</div><div class="content" id="idp107200"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_629376077FM"></a><div class="nodecontent">==, >, < 可以用于字符串比较</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_621426919FM"></a><div class="nodecontent">string 模组</div> <a onclick="getVisibleParents('FMFreemind_Link_320268457FM')" href="#FMFreemind_Link_320268457FM"><img src="/docbook/includes/images/freemind/ilink.png" class="ilink" alt="Arrow Link"></img></a></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp111840")' id="imgidp111840"></img><a id="FMFreemind_Link_192780845FM"></a><div class="nodecontent">警告: python 中字符串不可更改,属于常量</div><div class="content" id="idp111840"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp113104")' id="imgidp113104"></img><a id="FMFreemind_Link_1009645963FM"></a><div class="nodecontent"># 错误!字符串不可更改<br></br>greeting = "Hello, world!"<br></br>greeting[0] = 'J' # ERROR!<br></br>print greeting</div><div class="content" id="idp113104"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_844908099FM"></a><div class="nodecontent"># 可改写为:<br></br>greeting = "Hello, world!"<br></br>newGreeting = 'J' + greeting[1:]<br></br>print newGreeting</div></div></div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp115408")' id="imgidp115408"></img><a id="FMFreemind_Link_605120719FM"></a><div class="nodecontent">数字</div><div class="content" id="idp115408"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp116272")' id="imgidp116272"></img><a id="FMFreemind_Link_536889162FM"></a><div class="nodecontent">整形和长整形</div><div class="content" id="idp116272"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_67068972FM"></a><div class="nodecontent">longinteger ::= integer ("l" | "L")<br></br>integer ::= decimalinteger | octinteger | hexinteger<br></br>decimalinteger ::= nonzerodigit digit* | "0"<br></br>octinteger ::= "0" octdigit+<br></br>hexinteger ::= "0" ("x" | "X") hexdigit+<br></br>nonzerodigit ::= "1"..."9"<br></br>octdigit ::= "0"..."7"<br></br>hexdigit ::= digit | "a"..."f" | "A"..."F"</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp118672")' id="imgidp118672"></img><a id="FMFreemind_Link_756744108FM"></a><div class="nodecontent">浮点数</div><div class="content" id="idp118672"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_656040110FM"></a><div class="nodecontent"></div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp120400")' id="imgidp120400"></img><a id="FMFreemind_Link_853247141FM"></a><div class="nodecontent">类型转换</div><div class="content" id="idp120400"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1552925507FM"></a><div class="nodecontent">int("32")</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1934367608FM"></a><div class="nodecontent">int(-2.3)</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_589906303FM"></a><div class="nodecontent">float(32)</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_8286506FM"></a><div class="nodecontent">float("3.14159")</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_632169018FM"></a><div class="nodecontent">str(3.14149)</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1412767913FM"></a><div class="nodecontent">ord('A') : 返回 字母'A' 的 ASCII 值</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_914635131FM"></a><div class="nodecontent">复杂类型,如 list, tuple, dict 参见后面章节</div> <a onclick="getVisibleParents('FMFreemind_Link_1001023586FM')" href="#FMFreemind_Link_1001023586FM"><img src="/docbook/includes/images/freemind/ilink.png" class="ilink" alt="Arrow Link"></img></a></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp128720")' id="imgidp128720"></img><a id="FMFreemind_Link_1225594099FM"></a><div class="nodecontent">局部变量与全局变量</div><div class="content" id="idp128720"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_635919846FM"></a><div class="nodecontent">函数中可以直接引用全局变量的值,无须定义。但如果修改,影响只限于函数内部。</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1819989092FM"></a><div class="nodecontent">函数中没有用 global 声明的变量是局部变量,不影响全局变量的取值</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp131504")' id="imgidp131504"></img><a id="FMFreemind_Link_1035114588FM"></a><div class="nodecontent">global 声明全局变量</div><div class="content" id="idp131504"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_895575044FM"></a><div class="nodecontent">#!/usr/bin/python<br></br><br></br>def func1():<br></br> print "func1: local x is", x<br></br><br></br>def func2():<br></br> x = 2<br></br> print 'func2: local x is', x<br></br><br></br>def func3():<br></br> global x<br></br> print "func3: before change, x is", x<br></br> x = 2<br></br> print 'func3: changed x to', x<br></br><br></br>x = 1<br></br><br></br>print 'Global x is', x<br></br>func1()<br></br>print 'Global x is', x<br></br>func2()<br></br>print 'Global x is', x<br></br>func3()<br></br>print 'Global x is', x
</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp133952")' id="imgidp133952"></img><a id="FMFreemind_Link_1493152098FM"></a><div class="nodecontent">locals() 和 globals() 是两个特殊函数,返回局部变量和全局变量</div><div class="content" id="idp133952"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><img src="/docbook/includes/images/freemind/icons/help.png" alt="help"></img> <a id="FMFreemind_Link_131256040FM"></a><div class="nodecontent">locals() 返回局部变量的 copy,不能修改</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_559848498FM"></a><div class="nodecontent">globals() 返回全局变量的 namespace, 可以通过其修改全局变量本身</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_432095969FM"></a><div class="nodecontent">vars() 等同于 locales(),可以用 vars()['key'] = 'value' 动态添加局部变量</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp138224")' id="imgidp138224"></img><a id="FMFreemind_Link_1001023586FM"></a><div class="nodecontent">复杂类型</div><div class="content" id="idp138224"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1204636251FM"></a><div class="nodecontent">string/unicode(字符串)</div> <a onclick="getVisibleParents('FMFreemind_Link_1556810064FM')" href="#FMFreemind_Link_1556810064FM"><img src="/docbook/includes/images/freemind/ilink.png" class="ilink" alt="Arrow Link"></img></a></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp142080")' id="imgidp142080"></img><a id="FMFreemind_Link_1296385109FM"></a><div class="nodecontent">list (列表)</div><div class="content" id="idp142080"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp143088")' id="imgidp143088"></img><a id="FMFreemind_Link_1583327550FM"></a><div class="nodecontent">方括号建立的列表</div><div class="content" id="idp143088"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">[10, 20, 30, 40]</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">["spam", "bungee", "swallow"]</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">["hello", 2.0, 5, [10, 20]]</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp145760")' id="imgidp145760"></img><a id="FMFreemind_Link_1792961010FM"></a><div class="nodecontent">range 函数建立的列表</div><div class="content" id="idp145760"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp146768")' id="imgidp146768"></img><a id="FMFreemind_Link_24270249FM"></a><div class="nodecontent">>>> range(1,5)<br></br>[1, 2, 3, 4]</div><div class="content" id="idp146768"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_41394544FM"></a><div class="nodecontent">从1 到 5,包括1,但不包括5。(隐含步长为1)</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp148704")' id="imgidp148704"></img><a id="FMFreemind_Link_1499902432FM"></a><div class="nodecontent">>>> range(10)<br></br>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]</div><div class="content" id="idp148704"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_388625296FM"></a><div class="nodecontent">从 0 到 10,包括 0,但不包括 10。(隐含步长为1)</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp150672")' id="imgidp150672"></img><a id="FMFreemind_Link_1310006747FM"></a><div class="nodecontent">>>> range(1, 10, 2)<br></br>[1, 3, 5, 7, 9]</div><div class="content" id="idp150672"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1939634560FM"></a><div class="nodecontent">步长为2</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp152704")' id="imgidp152704"></img><a id="FMFreemind_Link_63913274FM"></a><div class="nodecontent">访问列表中的元素</div><div class="content" id="idp152704"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_384323944FM"></a><div class="nodecontent">类似数组下标</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">print numbers[0]</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">numbers[1] = 5</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp155616")' id="imgidp155616"></img><a id="FMFreemind_Link_966151305FM"></a><div class="nodecontent">print 语句显示列表</div><div class="content" id="idp155616"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_501291536FM"></a><div class="nodecontent">vocabulary = ["ameliorate", "castigate", "defenestrate"]<br></br>numbers = [17, 123]<br></br>empty = []<br></br>print vocabulary, numbers, empty<br></br>['ameliorate', 'castigate', 'defenestrate'] [17, 123] []</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp157904")' id="imgidp157904"></img><a id="FMFreemind_Link_1893117093FM"></a><div class="nodecontent">列表操作</div><div class="content" id="idp157904"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp158768")' id="imgidp158768"></img><a id="FMFreemind_Link_1279897229FM"></a><div class="nodecontent">列表长度</div><div class="content" id="idp158768"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_889633405FM"></a><div class="nodecontent">len() 函数</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp160544")' id="imgidp160544"></img><a id="FMFreemind_Link_956761636FM"></a><div class="nodecontent">+ (相加)</div><div class="content" id="idp160544"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_136141168FM"></a><div class="nodecontent">>>> a = [1, 2, 3]<br></br>>>> b = [4, 5, 6]<br></br>>>> c = a + b<br></br>>>> print c<br></br>[1, 2, 3, 4, 5, 6]</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp162496")' id="imgidp162496"></img><a id="FMFreemind_Link_462250105FM"></a><div class="nodecontent">* (重复)</div><div class="content" id="idp162496"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_502363907FM"></a><div class="nodecontent">>>> [0] * 4<br></br>[0, 0, 0, 0]<br></br>>>> [1, 2, 3] * 3<br></br>[1, 2, 3, 1, 2, 3, 1, 2, 3]</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp164432")' id="imgidp164432"></img><a id="FMFreemind_Link_349687345FM"></a><div class="nodecontent">List slices</div><div class="content" id="idp164432"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_32630403FM"></a><div class="nodecontent">参见 String slices</div> <a onclick="getVisibleParents('FMFreemind_Link_42868540FM')" href="#FMFreemind_Link_42868540FM"><img src="/docbook/includes/images/freemind/ilink.png" class="ilink" alt="Arrow Link"></img></a></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp168176")' id="imgidp168176"></img><a id="FMFreemind_Link_1126198878FM"></a><div class="nodecontent">列表是变量,可以更改</div><div class="content" id="idp168176"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_22886970FM"></a><div class="nodecontent">不像字符串 str, List 是可以更改的</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_219318666FM"></a><div class="nodecontent">>>> fruit = ["banana", "apple", "quince"]<br></br>>>> fruit[0] = "pear"<br></br>>>> fruit[-1] = "orange"<br></br>>>> print fruit<br></br>['pear', 'apple', 'orange']</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_450947306FM"></a><div class="nodecontent">>>> list = ['a', 'b', 'c', 'd', 'e', 'f']<br></br>>>> list[1:3] = ['x', 'y']<br></br>>>> print list<br></br>['a', 'x', 'y', 'd', 'e', 'f']</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp172064")' id="imgidp172064"></img><a id="FMFreemind_Link_1306401486FM"></a><div class="nodecontent">列表中增加元素</div><div class="content" id="idp172064"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1186982872FM"></a><div class="nodecontent">>>> list = ['a', 'd', 'f']<br></br>>>> list[1:1] = ['b', 'c']<br></br>>>> print list<br></br>['a', 'b', 'c', 'd', 'f']<br></br>>>> list[4:4] = ['e']<br></br>>>> print list<br></br>['a', 'b', 'c', 'd', 'e', 'f']</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp174112")' id="imgidp174112"></img><a id="FMFreemind_Link_1305131912FM"></a><div class="nodecontent">删除列表中元素</div><div class="content" id="idp174112"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp174992")' id="imgidp174992"></img><a id="FMFreemind_Link_216398146FM"></a><div class="nodecontent">通过清空而删除</div><div class="content" id="idp174992"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1187524898FM"></a><div class="nodecontent">>>> list = ['a', 'b', 'c', 'd', 'e', 'f']<br></br>>>> list[1:3] = []<br></br>>>> print list<br></br>['a', 'd', 'e', 'f']</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp177104")' id="imgidp177104"></img><a id="FMFreemind_Link_1003001875FM"></a><div class="nodecontent">使用 del 关键字</div><div class="content" id="idp177104"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_805953430FM"></a><div class="nodecontent">>>> a = ['one', 'two', 'three']<br></br>>>> del a[1]<br></br>>>> a<br></br>['one', 'three']</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_5464909FM"></a><div class="nodecontent">>>> list = ['a', 'b', 'c', 'd', 'e', 'f']<br></br>>>> del list[1:5]<br></br>>>> print list<br></br>['a', 'f']</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp179792")' id="imgidp179792"></img><a id="FMFreemind_Link_1814012406FM"></a><div class="nodecontent">查看列表的id</div><div class="content" id="idp179792"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_239306544FM"></a><div class="nodecontent">>>> a = [1, 2, 3]<br></br>>>> b = [1, 2, 3]<br></br>>>> print id(a), id(b)<br></br>418650444 418675820<br></br>>>> b = a<br></br>>>> print id(a), id(b)<br></br>418650444 418650444<br></br>>>> b = a[:]<br></br>>>> print id(a), id(b)<br></br>418650444 418675692</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp182208")' id="imgidp182208"></img><a id="FMFreemind_Link_1396269033FM"></a><div class="nodecontent">引用和Copy/Clone</div><div class="content" id="idp182208"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1604582092FM"></a><div class="nodecontent">b = a,则两个变量指向同一个对象,两个变量的值一起变动</div> <a onclick="getVisibleParents('FMFreemind_Link_239306544FM')" href="#FMFreemind_Link_239306544FM"><img src="/docbook/includes/images/freemind/ilink.png" class="ilink" alt="Arrow Link"></img></a></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_179748630FM"></a><div class="nodecontent">b = a[:],则建立克隆,b 和 a 指向不同对象,互不相干</div> <a onclick="getVisibleParents('FMFreemind_Link_239306544FM')" href="#FMFreemind_Link_239306544FM"><img src="/docbook/includes/images/freemind/ilink.png" class="ilink" alt="Arrow Link"></img></a></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1634832746FM"></a><div class="nodecontent" style="font-size:100%;font-weight:bold;">list 作为函数的参数,是引用调用,即函数对 list 所做的修改会影响 list 对象本身</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp190624")' id="imgidp190624"></img><a id="FMFreemind_Link_1795601085FM"></a><div class="nodecontent">列表嵌套和矩阵</div><div class="content" id="idp190624"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp191504")' id="imgidp191504"></img><a id="FMFreemind_Link_740323607FM"></a><div class="nodecontent">嵌套</div><div class="content" id="idp191504"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_525930143FM"></a><div class="nodecontent">>>> list = ["hello", 2.0, 5, [10, 20]]<br></br>>>> list[3][1]<br></br>20</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp193328")' id="imgidp193328"></img><a id="FMFreemind_Link_1078190733FM"></a><div class="nodecontent">矩阵</div><div class="content" id="idp193328"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1065974369FM"></a><div class="nodecontent">>>> matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]<br></br>>>> matrix[1]<br></br>[4, 5, 6]<br></br>>>> matrix[1][1]<br></br>5</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp195408")' id="imgidp195408"></img><a id="FMFreemind_Link_1216168788FM"></a><div class="nodecontent">字符串和列表</div><div class="content" id="idp195408"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp196416")' id="imgidp196416"></img><a id="FMFreemind_Link_524201632FM"></a><div class="nodecontent">string.split 方法</div><div class="content" id="idp196416"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_316747077FM"></a><div class="nodecontent">>>> import string<br></br>>>> song = "The rain in Spain..."<br></br>>>> string.split(song)<br></br>['The', 'rain', 'in', 'Spain...']</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_711145241FM"></a><div class="nodecontent">>>> string.split(song, 'ai')<br></br>['The r', 'n in Sp', 'n...']</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp199296")' id="imgidp199296"></img><a id="FMFreemind_Link_1886704563FM"></a><div class="nodecontent">string.join 方法</div><div class="content" id="idp199296"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1990677488FM"></a><div class="nodecontent">>>> list = ['The', 'rain', 'in', 'Spain...']<br></br>>>> string.join(list)<br></br>'The rain in Spain...'
</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1282919966FM"></a><div class="nodecontent">>>> string.join(list, '_')<br></br>'The_rain_in_Spain...'</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_712016162FM"></a><div class="nodecontent">>>> list = ['The', 'rain', 'in', 'Spain...']<br></br>>>> '|'.join(list)<br></br>'The|rain|in|Spain...'
</div></div></div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp203056")' id="imgidp203056"></img><a id="FMFreemind_Link_1587932357FM"></a><div class="nodecontent">Tuples</div><div class="content" id="idp203056"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp204048")' id="imgidp204048"></img><a id="FMFreemind_Link_195371697FM"></a><div class="nodecontent">圆括号建立 Tuple</div><div class="content" id="idp204048"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp205056")' id="imgidp205056"></img><a id="FMFreemind_Link_1747406413FM"></a><div class="nodecontent">在最外面用圆括号括起来</div><div class="content" id="idp205056"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_867739234FM"></a><div class="nodecontent">>>> type((1,2,3))<br></br><type 'tuple'></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp206992")' id="imgidp206992"></img><a id="FMFreemind_Link_1825214363FM"></a><div class="nodecontent">必需是逗号分隔的多个值</div><div class="content" id="idp206992"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1703810150FM"></a><div class="nodecontent">>>> type((1))<br></br><type 'int'></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_922539349FM"></a><div class="nodecontent">>>> type((1,))<br></br><type 'tuple'></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_453025333FM"></a><div class="nodecontent">>>> type(('WorldHello'))<br></br><type 'str'></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_433984030FM"></a><div class="nodecontent">>>> type(('WorldHello',))<br></br><type 'tuple'></div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp211376")' id="imgidp211376"></img><a id="FMFreemind_Link_828661787FM"></a><div class="nodecontent">Tuple vs list</div><div class="content" id="idp211376"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1376321032FM"></a><div class="nodecontent">Tuple 和 list 的区别就是: Tuple 是不可更改的,而 list 是可以更改的</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp213200")' id="imgidp213200"></img><a id="FMFreemind_Link_570828533FM"></a><div class="nodecontent">一个元素也可以构成 list,但 tuple 必需为多个元素</div><div class="content" id="idp213200"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_959801769FM"></a><div class="nodecontent">>>> type([1])<br></br><type 'list'></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_674322060FM"></a><div class="nodecontent">>>> type((1))<br></br><type 'int'></div></div></div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp216176")' id="imgidp216176"></img><a id="FMFreemind_Link_39327180FM"></a><div class="nodecontent">Dictionaries (哈希表)</div><div class="content" id="idp216176"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp217184")' id="imgidp217184"></img><a id="FMFreemind_Link_278202182FM"></a><div class="nodecontent">花括号建立 哈希表</div><div class="content" id="idp217184"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1081839252FM"></a><div class="nodecontent">Perl 管这种类型叫做 哈希表 或者关联数组。即下标可以是字符串的数组</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_603033014FM"></a><div class="nodecontent">>>> eng2sp = {}<br></br>>>> eng2sp['one'] = 'uno'<br></br>>>> eng2sp['two'] = 'dos'<br></br>>>> print eng2sp<br></br>{'one': 'uno', 'two': 'dos'}</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp220240")' id="imgidp220240"></img><a id="FMFreemind_Link_1710683289FM"></a><div class="nodecontent">访问哈希表中元素:下标为字符串</div><div class="content" id="idp220240"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1970163437FM"></a><div class="nodecontent">>>> print eng2sp<br></br>{'one': 'uno', 'three': 'tres', 'two': 'dos'}<br></br>>>> print eng2sp['two']<br></br>'dos'</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp222224")' id="imgidp222224"></img><a id="FMFreemind_Link_449232503FM"></a><div class="nodecontent">哈希表操作</div><div class="content" id="idp222224"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp223088")' id="imgidp223088"></img><a id="FMFreemind_Link_340388765FM"></a><div class="nodecontent">keys() 方法,返回 keys 组成的列表</div><div class="content" id="idp223088"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_697687692FM"></a><div class="nodecontent">>>> eng2sp.keys()<br></br>['one', 'three', 'two']</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp224928")' id="imgidp224928"></img><a id="FMFreemind_Link_1264192324FM"></a><div class="nodecontent">values() 方法,返回由 values 组成的列表</div><div class="content" id="idp224928"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1119393686FM"></a><div class="nodecontent">>>> eng2sp.values()<br></br>['uno', 'tres', 'dos']</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp226880")' id="imgidp226880"></img><a id="FMFreemind_Link_1265692897FM"></a><div class="nodecontent">items() 方法,返回由 key-value tuple 组成的列表</div><div class="content" id="idp226880"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_505345599FM"></a><div class="nodecontent">>>> eng2sp.items()<br></br>[('one','uno'), ('three', 'tres'), ('two', 'dos')]</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_489577525FM"></a><div class="nodecontent">from MoinMoin.util.chartypes import _chartypes<br></br>for key, val in _chartypes.items():<br></br> if not vars().has_key(key):<br></br> vars()[key] = val</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp229968")' id="imgidp229968"></img><a id="FMFreemind_Link_1203353972FM"></a><div class="nodecontent">haskey() 方法,返回布尔值</div><div class="content" id="idp229968"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1026628099FM"></a><div class="nodecontent">>>> eng2sp.has_key('one')<br></br>True<br></br>>>> eng2sp.has_key('deux')<br></br>False</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp231696")' id="imgidp231696"></img><a id="FMFreemind_Link_1643935887FM"></a><div class="nodecontent">get() 方法</div><div class="content" id="idp231696"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp232688")' id="imgidp232688"></img><a id="FMFreemind_Link_790438190FM"></a><div class="nodecontent">返回哈希表某个 key 对应的 value</div><div class="content" id="idp232688"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1302653264FM"></a><div class="nodecontent">如 eng2sp.get('one')</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_988318105FM"></a><div class="nodecontent">等同于 eng2sp['one']</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp235376")' id="imgidp235376"></img><a id="FMFreemind_Link_941960050FM"></a><div class="nodecontent">get() 可以带缺省值,即如果没有定义该 key,返回缺省值</div><div class="content" id="idp235376"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_429559394FM"></a><div class="nodecontent">如 eng2sp.get('none', 0),如果没有定义 none, 返回 0,而不是空</div></div></div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp237632")' id="imgidp237632"></img><a id="FMFreemind_Link_768156914FM"></a><div class="nodecontent">引用和 copy/clone</div><div class="content" id="idp237632"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp238640")' id="imgidp238640"></img><a id="FMFreemind_Link_501868669FM"></a><div class="nodecontent">哈希表的克隆:copy() 方法</div><div class="content" id="idp238640"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1369347561FM"></a><div class="nodecontent">>>> opposites = {'up': 'down', 'right': 'wrong', 'true': 'false'}<br></br>>>> copy = opposites.copy()</div></div></div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1533713627FM"></a><div class="nodecontent">Iterators</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp241856")' id="imgidp241856"></img><a id="FMFreemind_Link_1769682321FM"></a><div class="nodecontent">type 函数返回变量类型</div><div class="content" id="idp241856"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1536036296FM"></a><div class="nodecontent">isinstance(varname, type({}))</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp243664")' id="imgidp243664"></img><a id="FMFreemind_Link_1365349575FM"></a><div class="nodecontent">语句</div><div class="content" id="idp243664"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_60119158FM"></a><div class="nodecontent">每一行语句,不需要分号作为语句结尾!</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1247710324FM"></a><div class="nodecontent">如果多个语句写在一行,则需要 分号 分隔;</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp246496")' id="imgidp246496"></img><a id="FMFreemind_Link_33689050FM"></a><div class="nodecontent">用 “\” 显示连接行</div><div class="content" id="idp246496"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_828490025FM"></a><div class="nodecontent">如:<br></br>i=10<br></br>print \<br></br>i</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp248400")' id="imgidp248400"></img><a id="FMFreemind_Link_595347029FM"></a><div class="nodecontent">默认连接行</div><div class="content" id="idp248400"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1810581253FM"></a><div class="nodecontent">方括号,圆括号,花括号中的内容可以多行排列,不用 \ 续行,默认续行</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_261022264FM"></a><div class="nodecontent">例如:<br></br>month_names = ['Januari', 'Februari', 'Maart', # These are the<br></br> 'April', 'Mei', 'Juni', # Dutch names<br></br> 'Juli', 'Augustus', 'September', # for the months<br></br> 'Oktober', 'November', 'December'] # of the year</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp251696")' id="imgidp251696"></img><a id="FMFreemind_Link_6385624FM"></a><div class="nodecontent" style="font-size:100%;font-weight:bold;">缩进</div><div class="content" id="idp251696"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_404494015FM"></a><div class="nodecontent">一条语句前的空白(空格、TAB)是有意义的!</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1601465610FM"></a><div class="nodecontent">相同缩进的语句成为一个逻辑代码块</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1535759566FM"></a><div class="nodecontent">错误的缩进,将导致运行出错!</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1371677406FM"></a><div class="nodecontent">缩进的单位是空格。Tab 转换为1-8个空格,转换原则是空格总数是 8 的倍数。</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp256928")' id="imgidp256928"></img><a id="FMFreemind_Link_831185267FM"></a><div class="nodecontent">空语句 pass</div><div class="content" id="idp256928"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_694287989FM"></a><div class="nodecontent">def someFunction():<br></br> pass</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp258736")' id="imgidp258736"></img><a id="FMFreemind_Link_1543044680FM"></a><div class="nodecontent">操作符和表达式</div><div class="content" id="idp258736"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp259984")' id="imgidp259984"></img><img src="/docbook/includes/images/freemind/icons/idea.png" alt="idea"></img> <a id="FMFreemind_Link_1927711213FM"></a><div class="nodecontent">** 代表幂</div><div class="content" id="idp259984"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">3 ** 4 gives 81 (i.e. 3 * 3 * 3 * 3)</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp262128")' id="imgidp262128"></img><img src="/docbook/includes/images/freemind/icons/idea.png" alt="idea"></img> <a id="FMFreemind_Link_1739713472FM"></a><div class="nodecontent">// 代表 floor</div><div class="content" id="idp262128"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">4 // 3.0 gives 1.0</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp264256")' id="imgidp264256"></img><a id="FMFreemind_Link_28924284FM"></a><div class="nodecontent">% 代表取余</div><div class="content" id="idp264256"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">-25.5 % 2.25 gives 1.5 .</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1717682575FM"></a><div class="nodecontent"><< 左移位</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_83080874FM"></a><div class="nodecontent">>> 右移位</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_426512977FM"></a><div class="nodecontent"><, >, <=, >=, ==, != 和 C 类似</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp268176")' id="imgidp268176"></img><img src="/docbook/includes/images/freemind/icons/idea.png" alt="idea"></img> <a id="FMFreemind_Link_958177671FM"></a><div class="nodecontent">比较可以级联。如:</div><div class="content" id="idp268176"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_870455838FM"></a><div class="nodecontent">if 0 < x < 10:<br></br> print "x is a positive single digit."</div> <a onclick="getVisibleParents('FMFreemind_Link_731363591FM')" href="#FMFreemind_Link_731363591FM"><img src="/docbook/includes/images/freemind/ilink.png" class="ilink" alt="Arrow Link"></img></a></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp272464")' id="imgidp272464"></img><a id="FMFreemind_Link_1694180142FM"></a><div class="nodecontent">~, &, |, ^ 和 c 语言相同</div><div class="content" id="idp272464"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">5 & 3 gives 1.</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">5 | 3 gives 7.</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">5 ^ 3 gives 6</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp274960")' id="imgidp274960"></img><a id="FMFreemind_Link_1185382508FM"></a><div class="nodecontent">~5 gives -6</div><div class="content" id="idp274960"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_555505399FM"></a><div class="nodecontent">取反。 ~x 相当于 -(x+1)</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp276976")' id="imgidp276976"></img><a id="FMFreemind_Link_1843040085FM"></a><div class="nodecontent">and, or, not 代表逻辑与或非</div><div class="content" id="idp276976"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_731363591FM"></a><div class="nodecontent">if 0 < x and x < 10:<br></br> print "x is a positive single digit."</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp278944")' id="imgidp278944"></img><img src="/docbook/includes/images/freemind/icons/idea.png" alt="idea"></img> <a id="FMFreemind_Link_892976439FM"></a><div class="nodecontent">is 和 is not,用于 比较 两个 object 是否为同一个对象</div><div class="content" id="idp278944"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_553882075FM"></a><div class="nodecontent">实际上两个对象的 ID 相同,才代表同一个对象。</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1028723383FM"></a><div class="nodecontent">is: id(obj1) == id(obj2)</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1987476898FM"></a><div class="nodecontent">is not: id(obj1) != id(obj2)</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp282976")' id="imgidp282976"></img><img src="/docbook/includes/images/freemind/icons/idea.png" alt="idea"></img> <a id="FMFreemind_Link_986476276FM"></a><div class="nodecontent">in, not in 用于测试成员变量</div><div class="content" id="idp282976"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1428270092FM"></a><div class="nodecontent">'a' in ['a', 'b', 'c'] # True</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp285392")' id="imgidp285392"></img><img src="/docbook/includes/images/freemind/icons/idea.png" alt="idea"></img> <a id="FMFreemind_Link_1776152631FM"></a><div class="nodecontent">交换赋值 a,b = b,a</div><div class="content" id="idp285392"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp286896")' id="imgidp286896"></img><a id="FMFreemind_Link_1793879479FM"></a><div class="nodecontent">为交换变量 a, b 的值,其它语言可能需要一个中间变量</div><div class="content" id="idp286896"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_622120638FM"></a><div class="nodecontent">temp=a<br></br>a=b<br></br>b=temp</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_924810649FM"></a><div class="nodecontent">python 有一个交换赋值的写法: a,b = b,a</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp289904")' id="imgidp289904"></img><a id="FMFreemind_Link_1641023166FM"></a><div class="nodecontent">控制语句</div><div class="content" id="idp289904"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp291136")' id="imgidp291136"></img><a id="FMFreemind_Link_931226703FM"></a><div class="nodecontent">if 语句</div><div class="content" id="idp291136"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp292128")' id="imgidp292128"></img><a id="FMFreemind_Link_1334978245FM"></a><div class="nodecontent">if ... elif ... else , 示例:(注意冒号和缩进)</div><div class="content" id="idp292128"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_808151229FM"></a><div class="nodecontent">#!/usr/bin/python<br></br># Filename : if.py<br></br>number = 23<br></br>guess = int(raw_input('Enter an integer : '))<br></br>if guess == number:<br></br> print 'Congratulations, you guessed it.' # new block starts here<br></br> print "(but you don't win any prizes!)" # new block ends here<br></br>elif guess < number:<br></br> print 'No, it is a little higher than that.' # another block<br></br> # You can do whatever you want in a block ...<br></br>else:<br></br> print 'No, it is a little lower than that.'<br></br> # you must have guess > number to reach here<br></br>print 'Done'<br></br># This last statement is always executed, after the if statement<br></br># is executed.
</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_149755571FM"></a><div class="nodecontent">注意: 没有 switch... case 语句!</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp295680")' id="imgidp295680"></img><a id="FMFreemind_Link_1810326334FM"></a><div class="nodecontent">while 循环语句</div><div class="content" id="idp295680"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp296544")' id="imgidp296544"></img><a id="FMFreemind_Link_1542371088FM"></a><div class="nodecontent">while ... [else ...] ,示例:(else 可选)</div><div class="content" id="idp296544"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_103455237FM"></a><div class="nodecontent">#!/usr/bin/python<br></br># Filename : while.py<br></br>number = 23<br></br>stop = False<br></br>while not stop:<br></br> guess = int(raw_input('Enter an integer : '))<br></br> if guess == number:<br></br> print 'Congratulations, you guessed it.'<br></br> stop = True # This causes the while loop to stop<br></br> elif guess < number:<br></br> print 'No, it is a little higher than that.'<br></br> else: # you must have guess > number to reach here<br></br> print 'No, it is a little lower than that.'<br></br>else:<br></br> print 'The while loop is over.'<br></br> print 'I can do whatever I want here.'<br></br>print 'Done.'</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp298560")' id="imgidp298560"></img><a id="FMFreemind_Link_492688627FM"></a><div class="nodecontent">break 和 continue 语句</div><div class="content" id="idp298560"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_453109879FM"></a><div class="nodecontent">break 语句跳出循环,且不执行 else 语句</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp301136")' id="imgidp301136"></img><a id="FMFreemind_Link_150569154FM"></a><div class="nodecontent">for 循环语句</div><div class="content" id="idp301136"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp302128")' id="imgidp302128"></img><a id="FMFreemind_Link_329191971FM"></a><div class="nodecontent">for... else... ,示例:(else 可选)</div><div class="content" id="idp302128"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp303376")' id="imgidp303376"></img><a id="FMFreemind_Link_1441272892FM"></a><div class="nodecontent">#!/usr/bin/python<br></br># Filename : for.py<br></br>for i in range(1, 5):<br></br> print i<br></br>else:<br></br> print 'The for loop is over.'</div><div class="content" id="idp303376"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1575548173FM"></a><div class="nodecontent">range(1,5) 相当于 range(1,5,1) 第三个参数为步长</div> <a onclick="getVisibleParents('FMFreemind_Link_1792961010FM')" href="#FMFreemind_Link_1792961010FM"><img src="/docbook/includes/images/freemind/ilink.png" class="ilink" alt="Arrow Link"></img></a></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_336876758FM"></a><div class="nodecontent">range 止于第二个参数,但不包括第二个参数</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp307968")' id="imgidp307968"></img><a id="FMFreemind_Link_1008518702FM"></a><div class="nodecontent">break 和 continue 语句</div><div class="content" id="idp307968"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_573155847FM"></a><div class="nodecontent">break 语句跳出循环,且不执行 else 语句</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp309904")' id="imgidp309904"></img><a id="FMFreemind_Link_760129679FM"></a><div class="nodecontent">后置 for 语句</div><div class="content" id="idp309904"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1709285067FM"></a><div class="nodecontent">[ name for name in wikiaction.__dict__ ]</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_507474462FM"></a><div class="nodecontent">actions = [name[3:] for name in wikiaction.__dict__ if name.startswith('do_')]</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp312640")' id="imgidp312640"></img><a id="FMFreemind_Link_901828705FM"></a><div class="nodecontent">示例</div><div class="content" id="idp312640"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp313632")' id="imgidp313632"></img><a id="FMFreemind_Link_1544519838FM"></a><div class="nodecontent">字符串中的字符</div><div class="content" id="idp313632"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_524558808FM"></a><div class="nodecontent">prefixes = "JKLMNOPQ"<br></br>suffix = "ack"<br></br>for letter in prefixes:<br></br> print letter + suffix</div></div></div></div></div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp315984")' id="imgidp315984"></img><a id="FMFreemind_Link_369268204FM"></a><div class="nodecontent">函数</div><div class="content" id="idp315984"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp317216")' id="imgidp317216"></img><a id="FMFreemind_Link_313967808FM"></a><div class="nodecontent">函数声明</div><div class="content" id="idp317216"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp318208")' id="imgidp318208"></img><a id="FMFreemind_Link_1463873622FM"></a><div class="nodecontent">def 关键字</div><div class="content" id="idp318208"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_834232186FM"></a><div class="nodecontent">函数名</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_111575197FM"></a><div class="nodecontent">括号和参数</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1296719879FM"></a><div class="nodecontent">冒号</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp321584")' id="imgidp321584"></img><a id="FMFreemind_Link_1038999284FM"></a><div class="nodecontent">如:</div><div class="content" id="idp321584"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_629656501FM"></a><div class="nodecontent">#!/usr/bin/python<br></br># Filename : func_param.py<br></br>def printMax(a, b):<br></br> if a > b:<br></br> print a, 'is maximum'<br></br> else:<br></br> print b, 'is maximum'<br></br>printMax(3, 4) # Directly give literal values</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp324000")' id="imgidp324000"></img><a id="FMFreemind_Link_80259112FM"></a><div class="nodecontent">参数的缺省值</div><div class="content" id="idp324000"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp324880")' id="imgidp324880"></img><a id="FMFreemind_Link_449718724FM"></a><div class="nodecontent">如同 C++ 那样</div><div class="content" id="idp324880"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_379383958FM"></a><div class="nodecontent">#!/usr/bin/python<br></br># Filename : func_default.py<br></br>def say(s, times = 1):<br></br> print s * times<br></br>say('Hello')<br></br>say('World', 5)</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp327136")' id="imgidp327136"></img><a id="FMFreemind_Link_1735733607FM"></a><div class="nodecontent">关键字参数</div><div class="content" id="idp327136"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1225513965FM"></a><div class="nodecontent">在 C++ 等语言中遇到如下困扰:有一长串参数,虽然都有缺省值,但只为了修改后面的某个参数,还需要把前面的参数也赋值。这种方式,在 python 中称为顺序参数赋值。</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1717677462FM"></a><div class="nodecontent">Python 的一个特色是关键字参数赋值</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp329712")' id="imgidp329712"></img><a id="FMFreemind_Link_1106354373FM"></a><div class="nodecontent">例如:</div><div class="content" id="idp329712"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_374204463FM"></a><div class="nodecontent">#!/usr/bin/python<br></br># Filename : func_key.py<br></br><br></br>def func(a, b=5, c=10):<br></br> print 'a is', a, 'and b is', b, 'and c is', c<br></br><br></br>func(3, 7)<br></br>func(25, c=24)<br></br>func(c=50, a=100)</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp332032")' id="imgidp332032"></img><a id="FMFreemind_Link_348975810FM"></a><div class="nodecontent">可变参数</div><div class="content" id="idp332032"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_880637622FM"></a><div class="nodecontent">参数前加 * 或者 **,则读取的是 list 或者 dictionary</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp333616")' id="imgidp333616"></img><a id="FMFreemind_Link_1091270703FM"></a><div class="nodecontent">示例1</div><div class="content" id="idp333616"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_556730719FM"></a><div class="nodecontent">#!/usr/bin/python<br></br><br></br>def sum(*args):<br></br> '''Return the sum the number of args.'''<br></br> total = 0<br></br> for i in range(0, len(args)):<br></br> total += args[i]<br></br> return total<br></br><br></br>print sum(10, 20, 30, 40, 50)
</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp336016")' id="imgidp336016"></img><a id="FMFreemind_Link_322720763FM"></a><div class="nodecontent">函数返回值</div><div class="content" id="idp336016"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1256400413FM"></a><div class="nodecontent">return 语句提供函数返回值</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1136654223FM"></a><div class="nodecontent">没有 return,则返回 None</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp338464")' id="imgidp338464"></img><a id="FMFreemind_Link_232415690FM"></a><div class="nodecontent">DocStrings</div><div class="content" id="idp338464"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp339456")' id="imgidp339456"></img><a id="FMFreemind_Link_1153186371FM"></a><div class="nodecontent">DocStrings 提供函数的帮助</div><div class="content" id="idp339456"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1851020318FM"></a><div class="nodecontent">函数内部的第一行开始的字符串为 DocStrings</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp341280")' id="imgidp341280"></img><a id="FMFreemind_Link_1744011447FM"></a><div class="nodecontent">DocStrings 一般为多行</div><div class="content" id="idp341280"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1946098680FM"></a><div class="nodecontent">DocString 为三引号扩起来的多行字符串</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_78033570FM"></a><div class="nodecontent">第一行为概述</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_527601372FM"></a><div class="nodecontent">第二行为空行</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_590473791FM"></a><div class="nodecontent">第三行开始是详细描述</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp345520")' id="imgidp345520"></img><a id="FMFreemind_Link_164260588FM"></a><div class="nodecontent">DocStrings 的存在证明了函数也是对象</div><div class="content" id="idp345520"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1934728369FM"></a><div class="nodecontent">函数的 __doc__ 属性为该 DocStrings</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_172463186FM"></a><div class="nodecontent">例如 print printMax.__doc__ 为打印 printMax 函数的 DocStrings</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_863121919FM"></a><div class="nodecontent">help( ) 查看帮助就是调用函数的 DocStrings</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp349328")' id="imgidp349328"></img><a id="FMFreemind_Link_114874931FM"></a><div class="nodecontent">Lambda Forms</div><div class="content" id="idp349328"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1104898213FM"></a><div class="nodecontent">Lambda Forms 用于创建并返回新函数,即是一个函数生成器</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp351136")' id="imgidp351136"></img><a id="FMFreemind_Link_1961114309FM"></a><div class="nodecontent">示例</div><div class="content" id="idp351136"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1568810173FM"></a><div class="nodecontent"></div></div></div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp353248")' id="imgidp353248"></img><a id="FMFreemind_Link_1644687456FM"></a><div class="nodecontent">内置函数和对象</div><div class="content" id="idp353248"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_608439435FM"></a><div class="nodecontent">帮助: import __builtin__; help (__builtin__)</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp355296")' id="imgidp355296"></img><a id="FMFreemind_Link_815931800FM"></a><div class="nodecontent">函数</div><div class="content" id="idp355296"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp356288")' id="imgidp356288"></img><a id="FMFreemind_Link_1010797027FM"></a><div class="nodecontent">数学/逻辑/算法</div><div class="content" id="idp356288"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_844090006FM"></a><div class="nodecontent">abs(number) : 绝对值</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1403961589FM"></a><div class="nodecontent">cmp(x,y) : 比较x y 的值。返回 1,0,-1</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1417115589FM"></a><div class="nodecontent">divmod(x, y) -> (div, mod) : 显示除数和余数</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_532218549FM"></a><div class="nodecontent">pow(x, y[, z]) -> number </div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1808518987FM"></a><div class="nodecontent">round(number[, ndigits]) -> floating point number : 四舍五入,保留 n 位小数</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_578115438FM"></a><div class="nodecontent">sum(sequence, start=0) -> value : 取 sequence 的和</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_489975198FM"></a><div class="nodecontent">hex(number) -> string : 返回十六进制</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1423212475FM"></a><div class="nodecontent">oct(number) -> string : 八进制</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1342489019FM"></a><div class="nodecontent">len(object) -> integer</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_257893748FM"></a><div class="nodecontent">max(sequence) -> value </div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1403294775FM"></a><div class="nodecontent">min(sequence) -> value </div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp365920")' id="imgidp365920"></img><a id="FMFreemind_Link_1299597519FM"></a><div class="nodecontent">range([start,] stop[, step]) -> list of integers</div><div class="content" id="idp365920"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_875579997FM"></a><div class="nodecontent">>>> range(10)<br></br>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp367872")' id="imgidp367872"></img><a id="FMFreemind_Link_807785839FM"></a><div class="nodecontent">filter(function or None, sequence) -> list, tuple, or string </div><div class="content" id="idp367872"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_117571335FM"></a><div class="nodecontent">function 作用于 sequence 的每一个元素,返回 true 的元素。返回类型同 sequence 类型。</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1805342917FM"></a><div class="nodecontent">如果 function 为 None,返回本身为 true 的元素</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp370784")' id="imgidp370784"></img><a id="FMFreemind_Link_176392019FM"></a><div class="nodecontent">map(function, sequence[, sequence, ...]) -> list </div><div class="content" id="idp370784"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_305211959FM"></a><div class="nodecontent">将函数作用于 sequence 每个元素,生成 list</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_139007413FM"></a><div class="nodecontent">>>> map(lambda x : x*2, [1,2,3,4,5])<br></br>[2, 4, 6, 8, 10]
</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp373456")' id="imgidp373456"></img><a id="FMFreemind_Link_621454365FM"></a><div class="nodecontent">reduce(function, sequence[, initial]) -> value</div><div class="content" id="idp373456"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_460319754FM"></a><div class="nodecontent">从左至右,将函数作用在 sequence 上,最终由 sequence 产生一个唯一值。</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1299319407FM"></a><div class="nodecontent">>>> reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])<br></br>15<br></br>相当于 ((((1+2)+3)+4)+5)</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1476462878FM"></a><div class="nodecontent">sorted(iterable, cmp=None, key=None, reverse=False) : 排序</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp377056")' id="imgidp377056"></img><a id="FMFreemind_Link_651273622FM"></a><div class="nodecontent">zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)] </div><div class="content" id="idp377056"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1395703689FM"></a><div class="nodecontent">>>> zip('1234','789')<br></br>[('1', '7'), ('2', '8'), ('3', '9')]
</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp379024")' id="imgidp379024"></img><a id="FMFreemind_Link_587947093FM"></a><div class="nodecontent">coerce(x, y) -> (x1, y1)</div><div class="content" id="idp379024"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1667576360FM"></a><div class="nodecontent">Return a tuple consisting of the two numeric arguments converted to a common type, using the same rules as used by arithmetic operations. If coercion is not possible, raise TypeError.</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp381216")' id="imgidp381216"></img><a id="FMFreemind_Link_1099093588FM"></a><div class="nodecontent">字符串</div><div class="content" id="idp381216"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1035800657FM"></a><div class="nodecontent">chr(i) : 0<=i<256, 返回 ascii 码为 i 的字符</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1671440023FM"></a><div class="nodecontent">unichr(i) -> Unicode character : 返回 unicode 。 0 <= i <= 0x10ffff</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1814350040FM"></a><div class="nodecontent">ord(c) : 返回字符 c 的 ascii 码</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp384736")' id="imgidp384736"></img><a id="FMFreemind_Link_584617607FM"></a><div class="nodecontent">对象相关</div><div class="content" id="idp384736"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp385728")' id="imgidp385728"></img><a id="FMFreemind_Link_1675953670FM"></a><div class="nodecontent">delattr(object,name) : 在对象 object 中删除属性 name</div><div class="content" id="idp385728"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1067983932FM"></a><div class="nodecontent">delattr(x, 'y') 相当于 del x.y</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp387680")' id="imgidp387680"></img><a id="FMFreemind_Link_796851325FM"></a><div class="nodecontent">getattr(object, name[, default]) -> value</div><div class="content" id="idp387680"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_340017370FM"></a><div class="nodecontent">getattr(x, 'y') 相当于 x.y</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_75126563FM"></a><div class="nodecontent">缺省值,是当对象不包含时的取值</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1319742900FM"></a><div class="nodecontent">hasattr(object, name) -> bool</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_396739839FM"></a><div class="nodecontent">id(object) -> integer : 返回对象 ID,相当于内存中地址</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_851352814FM"></a><div class="nodecontent">hash(object) -> integer : 两个对象具有相同的值,就有相当的 hash。但反之未必。</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_73191417FM"></a><div class="nodecontent">setattr(object, name, value) : 相当于赋值 x.y = v</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_771015132FM"></a><div class="nodecontent">isinstance(object, class-or-type-or-tuple) -> bool</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1607994498FM"></a><div class="nodecontent">issubclass(C, B) -> bool </div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_321037734FM"></a><div class="nodecontent">globals() -> dictionary</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1869206614FM"></a><div class="nodecontent">locals() -> dictionary</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp396720")' id="imgidp396720"></img><a id="FMFreemind_Link_551264097FM"></a><div class="nodecontent">vars([object]) -> dictionary</div><div class="content" id="idp396720"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_156700221FM"></a><div class="nodecontent">没有参数相当于 locals()</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1128174315FM"></a><div class="nodecontent">以对象为参数,相当于 object.__dict__</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1331380059FM"></a><div class="nodecontent">dir([object]) : 显示对象属性列表</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1767397604FM"></a><div class="nodecontent">repr(object) -> string : 对象 object 的正式名称</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_105224559FM"></a><div class="nodecontent">reload(module) -> module : 重新加载 module</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp401792")' id="imgidp401792"></img><a id="FMFreemind_Link_160026950FM"></a><div class="nodecontent">iter</div><div class="content" id="idp401792"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp402784")' id="imgidp402784"></img><a id="FMFreemind_Link_1351984748FM"></a><div class="nodecontent">iter(collection) -> iterator</div><div class="content" id="idp402784"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_42808916FM"></a><div class="nodecontent">Get an iterator from an object. In the first form, the argument must<br></br> supply its own iterator, or be a sequence.</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp405008")' id="imgidp405008"></img><a id="FMFreemind_Link_1707136942FM"></a><div class="nodecontent">iter(callable, sentinel) -> iterator</div><div class="content" id="idp405008"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_844025746FM"></a><div class="nodecontent">In the second form, the callable is called until it returns the sentinel. </div></div></div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp407008")' id="imgidp407008"></img><a id="FMFreemind_Link_1758299833FM"></a><div class="nodecontent">输入输出</div><div class="content" id="idp407008"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1503593057FM"></a><div class="nodecontent">input([prompt]) -> value : 输入。相当于 eval(raw_input(prompt))。</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_904707967FM"></a><div class="nodecontent">raw_input([prompt]) -> string : 输入内容不做处理,作为字符串</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp409760")' id="imgidp409760"></img><a id="FMFreemind_Link_31853012FM"></a><div class="nodecontent">其他</div><div class="content" id="idp409760"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp410752")' id="imgidp410752"></img><a id="FMFreemind_Link_236254953FM"></a><div class="nodecontent">__import__(name, globals, locals, fromlist) -> module : 动态加载模块</div><div class="content" id="idp410752"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_637695214FM"></a><div class="nodecontent">import module 中的 module 不能是变量。如果要使用变量动态加载模块,使用下面的方法。</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_57613519FM"></a><div class="nodecontent">def importName(modulename, name):<br></br> """ Import name dynamically from module<br></br><br></br> Used to do dynamic import of modules and names that you know their<br></br> names only in runtime.<br></br><br></br> Any error raised here must be handled by the caller.<br></br> <br></br> @param modulename: full qualified mudule name, e.g. x.y.z<br></br> @param name: name to import from modulename<br></br> @rtype: any object<br></br> @return: name from module<br></br> """<br></br> module = __import__(modulename, globals(), {}, [name])<br></br> return getattr(module, name)</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_223911742FM"></a><div class="nodecontent">callable(object) : 是否可调用,如函数。对象也可以调用。</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1887428785FM"></a><div class="nodecontent">compile(source, filename, mode[, flags[, dont_inherit]]) -> code object </div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp415696")' id="imgidp415696"></img><a id="FMFreemind_Link_1238246051FM"></a><div class="nodecontent">eval(source[, globals[, locals]]) -> value</div><div class="content" id="idp415696"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1001865670FM"></a><div class="nodecontent">执行代码,source 可以是字符串表达的代码,或者 compile 返回的 code object</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_160640916FM"></a><div class="nodecontent">execfile(filename[, globals[, locals]]) </div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1102349147FM"></a><div class="nodecontent">intern(string) -> string </div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp419584")' id="imgidp419584"></img><a id="FMFreemind_Link_1934446701FM"></a><div class="nodecontent">对象</div><div class="content" id="idp419584"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp420464")' id="imgidp420464"></img><div class="nodecontent">basestring</div><div class="content" id="idp420464"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">str</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">unicode</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">buffer</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">classmethod</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">complex</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">dict</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">enumerate</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">file</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">file</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">float</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">frozenset</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp426768")' id="imgidp426768"></img><div class="nodecontent">int</div><div class="content" id="idp426768"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">bool</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">list</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">long</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">property</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">reversed</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">set</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">slice</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">staticmethod</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">super</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">tuple</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">type</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">xrange</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp433808")' id="imgidp433808"></img><a id="FMFreemind_Link_18705921FM"></a><div class="nodecontent">输入和输出</div><div class="content" id="idp433808"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp435040")' id="imgidp435040"></img><a id="FMFreemind_Link_1127908765FM"></a><div class="nodecontent">输入:raw_input vs input</div><div class="content" id="idp435040"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp436048")' id="imgidp436048"></img><a id="FMFreemind_Link_1893889538FM"></a><div class="nodecontent">最好用 raw_input</div><div class="content" id="idp436048"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1700867214FM"></a><div class="nodecontent">name = raw_input ("What...is your name? ")</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp437968")' id="imgidp437968"></img><a id="FMFreemind_Link_1242921470FM"></a><div class="nodecontent">input 只能用于输入数字</div><div class="content" id="idp437968"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_548999226FM"></a><div class="nodecontent">age = input ("How old are you? ")</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_461294008FM"></a><div class="nodecontent">如果输入的不是数字,直接报错退出!</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp440816")' id="imgidp440816"></img><a id="FMFreemind_Link_98352049FM"></a><div class="nodecontent">文件</div><div class="content" id="idp440816"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp441808")' id="imgidp441808"></img><a id="FMFreemind_Link_1223501385FM"></a><div class="nodecontent">打开文件</div><div class="content" id="idp441808"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp442800")' id="imgidp442800"></img><a id="FMFreemind_Link_318439085FM"></a><div class="nodecontent">读</div><div class="content" id="idp442800"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">>>> f = open("test.dat","r")</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp444432")' id="imgidp444432"></img><a id="FMFreemind_Link_1880180089FM"></a><div class="nodecontent">写</div><div class="content" id="idp444432"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1142998771FM"></a><div class="nodecontent">>>> f = open("test.dat","w")<br></br>>>> print f<br></br><open file 'test.dat', mode 'w' at fe820></div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp446512")' id="imgidp446512"></img><a id="FMFreemind_Link_197507228FM"></a><div class="nodecontent">write("content"):写文件</div><div class="content" id="idp446512"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_820816486FM"></a><div class="nodecontent">>>> f.write("Now is the time")<br></br>>>> f.write("to close the file")</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp448448")' id="imgidp448448"></img><a id="FMFreemind_Link_1385237992FM"></a><div class="nodecontent">read(count):读文件</div><div class="content" id="idp448448"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp449456")' id="imgidp449456"></img><a id="FMFreemind_Link_206614980FM"></a><div class="nodecontent">读取全部数据</div><div class="content" id="idp449456"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1040391951FM"></a><div class="nodecontent">>>> text = f.read()<br></br>>>> print text<br></br>Now is the timeto close the file</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp451408")' id="imgidp451408"></img><a id="FMFreemind_Link_1307896961FM"></a><div class="nodecontent">读取定长数据</div><div class="content" id="idp451408"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_52716446FM"></a><div class="nodecontent">>>> f = open("test.dat","r")<br></br>>>> print f.read(5)<br></br>Now i</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1589961102FM"></a><div class="nodecontent">判断是否到文件尾:读取内容为空</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1122344756FM"></a><div class="nodecontent">readline():读取一行内容,包括行尾换行符</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1618601065FM"></a><div class="nodecontent">readlines():读取每行内容到一个列表</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp455840")' id="imgidp455840"></img><a id="FMFreemind_Link_1436923171FM"></a><div class="nodecontent">关闭文件</div><div class="content" id="idp455840"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">>>> f.close()</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp457456")' id="imgidp457456"></img><a id="FMFreemind_Link_209215648FM"></a><div class="nodecontent">示例</div><div class="content" id="idp457456"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_126147857FM"></a><div class="nodecontent">def copyFile(oldFile, newFile):<br></br>f1 = open(oldFile, "r")<br></br>f2 = open(newFile, "w")<br></br>while True:<br></br> text = f1.read(50)<br></br> if text == "":<br></br> break<br></br> f2.write(text)<br></br>f1.close()<br></br>f2.close()<br></br>return</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp459728")' id="imgidp459728"></img><a id="FMFreemind_Link_1774460735FM"></a><div class="nodecontent">% 格式化输出</div><div class="content" id="idp459728"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1121969412FM"></a><div class="nodecontent">% 用在数字中,是取余数。</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_604832794FM"></a><div class="nodecontent">% 前面如果是字符串,则类似 C 的 printf 格式化输出。</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp462288")' id="imgidp462288"></img><a id="FMFreemind_Link_928217962FM"></a><div class="nodecontent">示例</div><div class="content" id="idp462288"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_518022768FM"></a><div class="nodecontent">>>> cars = 52<br></br>>>> "In July we sold %d cars." % cars<br></br>'In July we sold 52 cars.'</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1974170487FM"></a><div class="nodecontent">>>> "In %d days we made %f million %s." % (34,6.1,'dollars')<br></br>'In 34 days we made 6.100000 million dollars.'</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp465408")' id="imgidp465408"></img><a id="FMFreemind_Link_805302942FM"></a><div class="nodecontent">pickle 和 cPickle</div><div class="content" id="idp465408"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1501817850FM"></a><div class="nodecontent">相当于 C++ 中的序列化</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp466960")' id="imgidp466960"></img><a id="FMFreemind_Link_16748314FM"></a><div class="nodecontent">示例</div><div class="content" id="idp466960"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1345476048FM"></a><div class="nodecontent">>>> import pickle<br></br>>>> f = open("test.pck","w")<br></br>>>> pickle.dump(12.3, f)<br></br>>>> pickle.dump([1,2,3], f)<br></br>>>> f.close()<br></br><br></br>>>> f = open("test.pck","r")<br></br>>>> x = pickle.load(f)<br></br>>>> x<br></br>12.3<br></br>>>> type(x)<br></br><type 'float'><br></br>>>> y = pickle.load(f)<br></br>>>> y<br></br>[1, 2, 3]<br></br>>>> type(y)<br></br><type 'list'></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp469392")' id="imgidp469392"></img><a id="FMFreemind_Link_1867827574FM"></a><div class="nodecontent">使用 cPickle</div><div class="content" id="idp469392"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1031173763FM"></a><div class="nodecontent">cPickle 是用 C 语言实现的,速度更快</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp470880")' id="imgidp470880"></img><a id="FMFreemind_Link_996120407FM"></a><div class="nodecontent">比较两者时间</div><div class="content" id="idp470880"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1659930493FM"></a><div class="nodecontent">bash$ x=1; time while [ $x -lt 20 ]; do x=`expr $x + 1`; ./pickle.py ; done<br></br>real 0m5.743s<br></br>user 0m2.368s<br></br>sys 0m2.932s<br></br><br></br>bash$ x=1; time while [ $x -lt 20 ]; do x=`expr $x + 1`; ./cpickle.py ; done<br></br>real 0m3.826s<br></br>user 0m2.194s<br></br>sys 0m1.958s</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp473424")' id="imgidp473424"></img><a id="FMFreemind_Link_1578853529FM"></a><div class="nodecontent">cPickle 示例</div><div class="content" id="idp473424"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1954743131FM"></a><div class="nodecontent">#!/usr/bin/python<br></br># Filename: pickling.py<br></br><br></br>import cPickle<br></br><br></br>shoplistfile = 'shoplist.data' # The name of the file we will use<br></br><br></br>shoplist = ['apple', 'mango', 'carrot']<br></br><br></br># Write to the storage<br></br>f = file(shoplistfile, 'w')<br></br>cPickle.dump(shoplist, f) # dump the data to the file<br></br>f.close()<br></br><br></br>del shoplist # Remove shoplist<br></br><br></br># Read back from storage<br></br>f = file(shoplistfile)<br></br>storedlist = cPickle.load(f)<br></br>print storedlist
</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp475888")' id="imgidp475888"></img><a id="FMFreemind_Link_477403093FM"></a><div class="nodecontent">管道(pipe)</div><div class="content" id="idp475888"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1470597183FM"></a><div class="nodecontent">os.popen('ls /etc').read()</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_933757208FM"></a><div class="nodecontent">os.popen('ls /etc').readlines()</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp478320")' id="imgidp478320"></img><a id="FMFreemind_Link_598163207FM"></a><div class="nodecontent">关于 Python</div><div class="content" id="idp478320"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp479552")' id="imgidp479552"></img><a id="FMFreemind_Link_1039000636FM"></a><div class="nodecontent">Python 链接</div><div class="content" id="idp479552"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1164594854FM"></a><div class="nodecontent"><a href="http://www.python.org">http://www.python.org</a> <a href="http://www.python.org"><img src="/docbook/includes/images/freemind/ilink.png" alt="User Link" style="border-width:0"></img></a></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1528732963FM"></a><div class="nodecontent">wxPython</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1891024819FM"></a><div class="nodecontent">Boa</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_159196161FM"></a><div class="nodecontent">Eclipse</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp483936")' id="imgidp483936"></img><a id="FMFreemind_Link_1095417466FM"></a><div class="nodecontent">Python 版本</div><div class="content" id="idp483936"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">2.4.3</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp485680")' id="imgidp485680"></img><a id="FMFreemind_Link_1436348282FM"></a><div class="nodecontent">关于本文</div><div class="content" id="idp485680"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp486912")' id="imgidp486912"></img><a id="FMFreemind_Link_452334831FM"></a><div class="nodecontent">作者</div><div class="content" id="idp486912"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp487904")' id="imgidp487904"></img><a id="FMFreemind_Link_1545358139FM"></a><div class="nodecontent">J</div><div class="content" id="idp487904"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1880872410FM"></a><div class="nodecontent">Jiang Xin</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1128278540FM"></a><div class="nodecontent">等待你的加入...</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp490688")' id="imgidp490688"></img><a id="FMFreemind_Link_1919660892FM"></a><div class="nodecontent">参考资料</div><div class="content" id="idp490688"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_562143718FM"></a><div class="nodecontent"><a href="www.python.g2swaroop.net">《A Byte of Python》, by Swaroop C H</a> <a href="www.python.g2swaroop.net"><img src="/docbook/includes/images/freemind/ilink.png" alt="User Link" style="border-width:0"></img></a></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_404286845FM"></a><div class="nodecontent"><a href="http://www.thinkpython.com">《How to Think Like a Computer Scientist ——Learning with Python》</a> <a href="http://www.thinkpython.com"><img src="/docbook/includes/images/freemind/ilink.png" alt="User Link" style="border-width:0"></img></a></div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp494048")' id="imgidp494048"></img><a id="FMFreemind_Link_426858047FM"></a><div class="nodecontent">面向对象:类的编程</div><div class="content" id="idp494048"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_767102022FM"></a><div class="nodecontent">甚至字符串,变量,函数,都是对象</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp496096")' id="imgidp496096"></img><a id="FMFreemind_Link_1935652908FM"></a><div class="nodecontent">概念</div><div class="content" id="idp496096"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp497088")' id="imgidp497088"></img><a id="FMFreemind_Link_847129716FM"></a><div class="nodecontent">class 和 object</div><div class="content" id="idp497088"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_755517910FM"></a><div class="nodecontent">class 是用 class 关键字创建的一个新类型</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1408760060FM"></a><div class="nodecontent">object 是该 class 的一个实例</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp499808")' id="imgidp499808"></img><a id="FMFreemind_Link_1301181815FM"></a><div class="nodecontent">fields 和 methods</div><div class="content" id="idp499808"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_156625122FM"></a><div class="nodecontent">class 中定义的变量称为 field</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_83150406FM"></a><div class="nodecontent">class 中定义的函数称为 method</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp502512")' id="imgidp502512"></img><a id="FMFreemind_Link_93259456FM"></a><div class="nodecontent">fields 的两种类型</div><div class="content" id="idp502512"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp503520")' id="imgidp503520"></img><a id="FMFreemind_Link_503301735FM"></a><div class="nodecontent">instance variables</div><div class="content" id="idp503520"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_139675182FM"></a><div class="nodecontent">属于该类的每一个对象实例</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp505440")' id="imgidp505440"></img><a id="FMFreemind_Link_1815524879FM"></a><div class="nodecontent">class variables</div><div class="content" id="idp505440"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1461436062FM"></a><div class="nodecontent">属于class 本身的</div></div></div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp507584")' id="imgidp507584"></img><a id="FMFreemind_Link_544097652FM"></a><div class="nodecontent">method(方法) 与函数的区别</div><div class="content" id="idp507584"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp508608")' id="imgidp508608"></img><a id="FMFreemind_Link_27513138FM"></a><div class="nodecontent">method 的第一个参数比较特殊</div><div class="content" id="idp508608"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1250725245FM"></a><div class="nodecontent">在 method 声明时必须提供,但是调用时又不能提供该参数</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1414120336FM"></a><div class="nodecontent">这个参数指向对象本身,一般命名为 self</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_506978382FM"></a><div class="nodecontent">python 在调用时会自动提供该参数</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1472549935FM"></a><div class="nodecontent">例如:调用 MyClass 的一个实例 MyObject:<br></br>MyObject.method(arg1, arg2) ,Python 自动调用 MyClass.method(MyObject, arg1,arg2).</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp513392")' id="imgidp513392"></img><a id="FMFreemind_Link_898202331FM"></a><div class="nodecontent">class 变量和 object 变量</div><div class="content" id="idp513392"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1323148618FM"></a><div class="nodecontent">在 Class ChassName 中定义的变量 var1 和 var2</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_156955273FM"></a><div class="nodecontent">如果 ClassName.var1 方式调用,则该变量为 Class 变量,在该 Class 的各个实例中共享</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1184817784FM"></a><div class="nodecontent">如果 var2 以 self.var2 方式调用,则该变量为 Object 变量,与其他 Object 隔离</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp516896")' id="imgidp516896"></img><a id="FMFreemind_Link_1184627937FM"></a><div class="nodecontent">示例</div><div class="content" id="idp516896"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_197018142FM"></a><div class="nodecontent">类 Person, 每新增一人,类变量 population 加一</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp518464")' id="imgidp518464"></img><a id="FMFreemind_Link_1697186420FM"></a><div class="nodecontent">代码</div><div class="content" id="idp518464"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1044172006FM"></a><div class="nodecontent">#!/usr/bin/python<br></br># Filename: objvar.py<br></br>class Person:<br></br> '''Represents a person.'''<br></br> population = 0<br></br> def __init__(self, name):<br></br> '''Initializes the person.'''<br></br> self.name = name<br></br> print '(Initializing %s)' % self.name<br></br> # When this person is created,<br></br> # he/she adds to the population<br></br> Person.population += 1<br></br><br></br> def sayHi(self):<br></br> '''Greets the other person.<br></br> Really, that's all it does.'''<br></br> print 'Hi, my name is %s.' % self.name<br></br><br></br> def howMany(self):<br></br> '''Prints the current population.'''<br></br> # There will always be atleast one person<br></br> if Person.population == 1:<br></br> print 'I am the only person here.'<br></br> else:<br></br> print 'We have %s persons here.' % \<br></br> Person.population<br></br><br></br>swaroop = Person('Swaroop')<br></br>swaroop.sayHi()<br></br>swaroop.howMany()<br></br><br></br>kalam = Person('Abdul Kalam')<br></br>kalam.sayHi()<br></br>kalam.howMany()<br></br><br></br>swaroop.sayHi()<br></br>swaroop.howMany()
</div></div></div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp520816")' id="imgidp520816"></img><a id="FMFreemind_Link_1387499583FM"></a><div class="nodecontent">构造和析构函数</div><div class="content" id="idp520816"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp522656")' id="imgidp522656"></img><a id="FMFreemind_Link_680072536FM"></a><div class="nodecontent">__init__ 构造函数</div><div class="content" id="idp522656"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1099619371FM"></a><div class="nodecontent">在对象建立时,该函数自动执行。</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp524464")' id="imgidp524464"></img><a id="FMFreemind_Link_1857005340FM"></a><div class="nodecontent">__del__ 构造函数</div><div class="content" id="idp524464"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_511967024FM"></a><div class="nodecontent">在用 del 删除对象时,该函数自动执行。</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp526528")' id="imgidp526528"></img><a id="FMFreemind_Link_1910977763FM"></a><div class="nodecontent">其他类的方法</div><div class="content" id="idp526528"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_295925977FM"></a><div class="nodecontent">大多和操作符重载相关</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp528304")' id="imgidp528304"></img><a id="FMFreemind_Link_960806366FM"></a><div class="nodecontent">__lt__(self, other)</div><div class="content" id="idp528304"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1569619982FM"></a><div class="nodecontent">重载 <</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp530192")' id="imgidp530192"></img><a id="FMFreemind_Link_804383051FM"></a><div class="nodecontent"> __getitem__(...)<br></br> x.__getitem__(y) <==> x[y]
</div><div class="content" id="idp530192"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_472554242FM"></a><div class="nodecontent">重载 [key]</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp532112")' id="imgidp532112"></img><a id="FMFreemind_Link_986424351FM"></a><div class="nodecontent">__len__(self)</div><div class="content" id="idp532112"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_949054829FM"></a><div class="nodecontent">重载 len() 函数</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp534000")' id="imgidp534000"></img><a id="FMFreemind_Link_243516447FM"></a><div class="nodecontent">__str__(self)</div><div class="content" id="idp534000"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1109071433FM"></a><div class="nodecontent">当 print object 时,打印的内容</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp535904")' id="imgidp535904"></img><a id="FMFreemind_Link_710126935FM"></a><div class="nodecontent">__iter__(self)</div><div class="content" id="idp535904"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1854900998FM"></a><div class="nodecontent">支持 iterator, 返回一个包含 next() 方法的对象。或者如果类定义了 next(), __iter__ 可以直接返回 self</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1019314041FM"></a><div class="nodecontent">__getattribute__(...)<br></br> x.__getattribute__('name') <==> x.name
</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp538928")' id="imgidp538928"></img><a id="FMFreemind_Link_353312013FM"></a><div class="nodecontent">类的继承</div><div class="content" id="idp538928"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1641763681FM"></a><div class="nodecontent">语法,在子类声明中用括号将基类扩在其中</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp540624")' id="imgidp540624"></img><a id="FMFreemind_Link_290656089FM"></a><div class="nodecontent">示例</div><div class="content" id="idp540624"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1140943958FM"></a><div class="nodecontent"># Filename: inheritance.py<br></br>class SchoolMember:<br></br> '''Represents any school member.'''<br></br> def __init__(self, name, age):<br></br> self.name = name<br></br> self.age = age<br></br> print '(Initialized SchoolMember: %s)' % self.name<br></br><br></br> def tell(self):<br></br> print 'Name:"%s" Age:"%s" ' % (self.name, self.age),<br></br><br></br><br></br>class Teacher(SchoolMember):<br></br> '''Represents a teacher.'''<br></br> def __init__(self, name, age, salary):<br></br> SchoolMember.__init__(self, name, age)<br></br> self.salary = salary<br></br> print '(Initialized Teacher: %s)' % self.name<br></br><br></br> def tell(self):<br></br> SchoolMember.tell(self)<br></br> print 'Salary:"%d"' % self.salary<br></br><br></br><br></br>class Student(SchoolMember):<br></br> '''Represents a student.'''<br></br> def __init__(self, name, age, marks):<br></br> SchoolMember.__init__(self, name, age)<br></br> self.marks = marks<br></br> print '(Initialized Student: %s)' % self.name<br></br> def tell(self):<br></br> SchoolMember.tell(self)<br></br> print 'Marks:"%d"' % self.marks<br></br><br></br>t = Teacher('Mrs. Abraham', 40, 30000)<br></br>s = Student('Swaroop', 21, 75)<br></br><br></br>print # prints a blank line<br></br><br></br>members = [t, s]<br></br>for member in members:<br></br> member.tell()<br></br> # Works for instances of Student as well as Teacher<br></br><br></br>
</div></div></div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp542976")' id="imgidp542976"></img><a id="FMFreemind_Link_85241298FM"></a><div class="nodecontent">异常处理</div><div class="content" id="idp542976"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp544064")' id="imgidp544064"></img><a id="FMFreemind_Link_1598398653FM"></a><div class="nodecontent">Try..Except</div><div class="content" id="idp544064"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1222811409FM"></a><div class="nodecontent">在 python 解析器中输入 s = raw_input('Enter something --> '),<br></br>按 Ctrl-D , Ctrl-C 看看如何显示?</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp546048")' id="imgidp546048"></img><a id="FMFreemind_Link_160634338FM"></a><div class="nodecontent">用 Try..Except 捕获异常输入。示例</div><div class="content" id="idp546048"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1291037359FM"></a><div class="nodecontent">#!/usr/bin/python<br></br># Filename: try_except.py<br></br><br></br>import sys<br></br><br></br>try:<br></br> s = raw_input('Enter something --> ')<br></br>except EOFError:<br></br> print '\nWhy did you do an EOF on me?'<br></br> sys.exit() # Exit the program<br></br>except:<br></br> print '\nSome error/exception occurred.'<br></br> # Here, we are not exiting the program<br></br><br></br>print 'Done'</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp548400")' id="imgidp548400"></img><a id="FMFreemind_Link_31515403FM"></a><div class="nodecontent">Try..Finally</div><div class="content" id="idp548400"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1432127554FM"></a><div class="nodecontent">finally: 代表无论如何都要执行的语句块</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp550208")' id="imgidp550208"></img><a id="FMFreemind_Link_1429359698FM"></a><div class="nodecontent">Raising Exceptions</div><div class="content" id="idp550208"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_924019790FM"></a><div class="nodecontent">建立自己的异常事件,需要创建一个 Exception 的子类</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp551920")' id="imgidp551920"></img><a id="FMFreemind_Link_15449914FM"></a><div class="nodecontent">创建自己的异常类 ShortInputException 示例</div><div class="content" id="idp551920"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1460631986FM"></a><div class="nodecontent">#!/usr/bin/python<br></br># Filename: raising.py<br></br><br></br>class ShortInputException(Exception):<br></br> '''A user-defined exception class.'''<br></br> def __init__(self, length, atleast):<br></br> self.length = length<br></br> self.atleast = atleast<br></br>
</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp554352")' id="imgidp554352"></img><a id="FMFreemind_Link_352112866FM"></a><div class="nodecontent">产生异常和捕获异常</div><div class="content" id="idp554352"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1708803837FM"></a><div class="nodecontent">try:<br></br> s = raw_input('Enter something --> ')<br></br> if len(s) < 3:<br></br> raise ShortInputException(len(s), 3)<br></br> # Other work can go as usual here.<br></br>except EOFError:<br></br> print '\nWhy did you do an EOF on me?'<br></br>except ShortInputException, x:<br></br> print '\nThe input was of length %d, it should be at least %d'\<br></br> % (x.length, x.atleast)<br></br>else:<br></br> print 'No exception was raised.'
</div></div></div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp556928")' id="imgidp556928"></img><a id="FMFreemind_Link_1036321041FM"></a><div class="nodecontent">模组和包</div><div class="content" id="idp556928"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp557952")' id="imgidp557952"></img><a id="FMFreemind_Link_1516364023FM"></a><div class="nodecontent">示例</div><div class="content" id="idp557952"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp558800")' id="imgidp558800"></img><a id="FMFreemind_Link_1291450975FM"></a><div class="nodecontent">a.py 示例</div><div class="content" id="idp558800"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_867464669FM"></a><div class="nodecontent"># -*- python -*-<br></br><br></br>version=0.1.a</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp560688")' id="imgidp560688"></img><a id="FMFreemind_Link_1521602036FM"></a><div class="nodecontent">b.py 以模组调用 a.py</div><div class="content" id="idp560688"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><img src="/docbook/includes/images/freemind/icons/idea.png" alt="idea"></img> <a id="FMFreemind_Link_51371852FM"></a><div class="nodecontent">a.py 与 b.py 在同一目录下</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp563104")' id="imgidp563104"></img><a id="FMFreemind_Link_1575204633FM"></a><div class="nodecontent">直接 import</div><div class="content" id="idp563104"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1108905325FM"></a><div class="nodecontent">a.py 中定义的变量和函数的引用属于模块 a 的命名空间</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1813873929FM"></a><div class="nodecontent">import a<br></br>print "version:%s, author:%s" % (a.version, a.author)
</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp565840")' id="imgidp565840"></img><a id="FMFreemind_Link_1633548939FM"></a><div class="nodecontent">使用 from module import 语法</div><div class="content" id="idp565840"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1791855382FM"></a><div class="nodecontent">a.py 中定义的变量和函数就像在 b.py 中定义的一样</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1215287448FM"></a><div class="nodecontent">from a import *<br></br>print "version:%s, author:%s" % (version, author)
</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_359396278FM"></a><div class="nodecontent">from a import author<br></br># 只 import 模块a中一个变量<br></br>print "author:", author
</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><img src="/docbook/includes/images/freemind/icons/idea.png" alt="idea"></img> <a id="FMFreemind_Link_35924976FM"></a><div class="nodecontent">将 a.py 拷贝到目录 dir_a 中</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp570864")' id="imgidp570864"></img><a id="FMFreemind_Link_935713552FM"></a><div class="nodecontent">修改 sys.path, 将 dir_a 包含其中</div><div class="content" id="idp570864"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_844679394FM"></a><div class="nodecontent">import sys<br></br>sys.path.insert(0, "dir_a")<br></br><br></br>import a<br></br>print "author:", a.author
</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1327950118FM"></a><div class="nodecontent">import sys<br></br>sys.path.insert(0, "dir_a")<br></br><br></br>from a import *<br></br>print "version:%s, author:%s" % (version, author)
</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp573904")' id="imgidp573904"></img><a id="FMFreemind_Link_1098948786FM"></a><div class="nodecontent">将 dir_a 作为 package</div><div class="content" id="idp573904"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_365920956FM"></a><div class="nodecontent"><a href="http://www.python.org/doc/essays/packages.html">参见: python.org > Doc > Essays > Packages</a> <a href="http://www.python.org/doc/essays/packages.html"><img src="/docbook/includes/images/freemind/ilink.png" alt="User Link" style="border-width:0"></img></a></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_448456111FM"></a><div class="nodecontent">在 dir_a 目录下创建文件 __init__.py (空文件即可)</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1206748724FM"></a><div class="nodecontent">from dir_a import a<br></br># 只 import 模块a中一个变量<br></br>print "author:", a.author
</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1348598281FM"></a><div class="nodecontent"># b.py<br></br>from dir_a.a import *<br></br>print "version:%s, author:%s" % (version, author)
</div></div></div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp578576")' id="imgidp578576"></img><a id="FMFreemind_Link_51277616FM"></a><div class="nodecontent">说明</div><div class="content" id="idp578576"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_35278766FM"></a><div class="nodecontent">模组文件为 *.py 文件</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp580336")' id="imgidp580336"></img><a id="FMFreemind_Link_4311502FM"></a><div class="nodecontent">模组文件位于 PYTHONPATH 指定的目录中,可以用 print sys.path 查看</div><div class="content" id="idp580336"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_655063843FM"></a><div class="nodecontent">import sys<br></br>print sys.path</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1414953669FM"></a><div class="nodecontent">模组引用一次后,会编译为 *.pyc 二进制文件,以提高效率</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp583248")' id="imgidp583248"></img><a id="FMFreemind_Link_1071274592FM"></a><div class="nodecontent">import 语句,引用模组</div><div class="content" id="idp583248"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_852174356FM"></a><div class="nodecontent">语法1: "import" module ["as" name] ( "," module ["as" name] )*</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1066186635FM"></a><div class="nodecontent">语法2: "from" module "import" identifier ["as" name] ( "," identifier ["as" name] )*</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp586256")' id="imgidp586256"></img><a id="FMFreemind_Link_1163493951FM"></a><div class="nodecontent">__name__ 变量</div><div class="content" id="idp586256"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1111913416FM"></a><div class="nodecontent">每个模组都有一个名字,模组内语句可以通过 __name__ 属性得到模组名字。</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1595819755FM"></a><div class="nodecontent">当模组被直接调用, __name__ 设置为 __main__</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp588768")' id="imgidp588768"></img><a id="FMFreemind_Link_1770643789FM"></a><div class="nodecontent">例如模组中的如下语句</div><div class="content" id="idp588768"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1303659746FM"></a><div class="nodecontent">#!/usr/bin/python<br></br># Filename: using_name.py<br></br><br></br>if __name__ == '__main__':<br></br> print 'This program is being run by itself'<br></br>else:<br></br> print 'I am being imported from another module'</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp591072")' id="imgidp591072"></img><a id="FMFreemind_Link_928439861FM"></a><div class="nodecontent">__dict__ </div><div class="content" id="idp591072"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_364063696FM"></a><div class="nodecontent">Modules, classes, and class instances all have __dict__ attributes that holds the namespace contents for that object.</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp593056")' id="imgidp593056"></img><a id="FMFreemind_Link_794626197FM"></a><div class="nodecontent">dir() 函数</div><div class="content" id="idp593056"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1770476625FM"></a><div class="nodecontent">可以列出一个模组中定义的变量</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp594736")' id="imgidp594736"></img><a id="FMFreemind_Link_732556438FM"></a><div class="nodecontent">关于包(package)</div><div class="content" id="idp594736"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1741947369FM"></a><div class="nodecontent">package 可以更有效的组织 modules。</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp596528")' id="imgidp596528"></img><a id="FMFreemind_Link_1436859778FM"></a><div class="nodecontent">__init__.py 文件,决定了一个目录不是不同目录,而是作为 python package</div><div class="content" id="idp596528"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_874583617FM"></a><div class="nodecontent">__init__.py 可以为空</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_535119459FM"></a><div class="nodecontent">__init__.py 可以包含 __all__变量</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_433111998FM"></a><div class="nodecontent">package 就是一个目录,包含 *.py 模组文件,同时包含一个 __init__.py 文件</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1207875740FM"></a><div class="nodecontent">一个问题: 由于 Mac, windows 等对于文件名大小写不区分,当用 from package import * 的时候,难以确定文件名到模组名的对应</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp601232")' id="imgidp601232"></img><a id="FMFreemind_Link_915556806FM"></a><div class="nodecontent">__all__ 变量是一个解决方案</div><div class="content" id="idp601232"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1663791296FM"></a><div class="nodecontent">已如对于上例,在 __init__.py 中定义<br></br>__all__ = ["a"]<br></br><br></br>即当 from dir_a import * 的时候,import 的模组是 __all__ 中定义的模组</div></div></div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_983781445FM"></a><div class="nodecontent">sys, os: Python 核心库</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp604416")' id="imgidp604416"></img><a id="FMFreemind_Link_1605165470FM"></a><div class="nodecontent">Python 函数库</div><div class="content" id="idp604416"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp605568")' id="imgidp605568"></img><a id="FMFreemind_Link_105677817FM"></a><div class="nodecontent">sys</div><div class="content" id="idp605568"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp606544")' id="imgidp606544"></img><a id="FMFreemind_Link_442828745FM"></a><div class="nodecontent">查看系统信息 sys.platform, sys.version_info, sys.maxint</div><div class="content" id="idp606544"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1206042612FM"></a><div class="nodecontent">>>> import sys<br></br>>>> sys.version<br></br>'2.4.1 (#1, May 27 2005, 18:02:40) \n[GCC 3.3.3 (cygwin special)]'<br></br>>>> sys.version_info<br></br>(2, 4, 1, 'final', 0)<br></br>>>> sys.platform, sys.maxint<br></br>('linux2', 9223372036854775807)
</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp608960")' id="imgidp608960"></img><a id="FMFreemind_Link_568549164FM"></a><div class="nodecontent">Python 模组的查询路径: sys.path</div><div class="content" id="idp608960"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_871192969FM"></a><div class="nodecontent">显示 python 查询路径: sys.path</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1981797608FM"></a><div class="nodecontent">设置 Python 模组包含路径: sys.path.append( '/home/user')</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp611408")' id="imgidp611408"></img><a id="FMFreemind_Link_710940234FM"></a><div class="nodecontent">Exception 例外信息: sys.exc_type</div><div class="content" id="idp611408"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_30286857FM"></a><div class="nodecontent">>>> try:<br></br>... raise IndexError<br></br>... except:<br></br>... print sys.exc_info()</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1673856286FM"></a><div class="nodecontent">try:<br></br> raise TypeError, "Bad Thing"<br></br>except:<br></br> print sys.exc_info()<br></br> print sys.exc_type, sys.exc_value</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp614448")' id="imgidp614448"></img><a id="FMFreemind_Link_148724091FM"></a><div class="nodecontent">命令行参数: sys.argv</div><div class="content" id="idp614448"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1459558922FM"></a><div class="nodecontent">命令行参数数目: len(sys.argv) , 包含程序本身名称</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1725072681FM"></a><div class="nodecontent">sys.argv[0] 为程序名称, sys.argv[1] 为第一个参数,依此类推</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp616864")' id="imgidp616864"></img><a id="FMFreemind_Link_479737229FM"></a><div class="nodecontent">示例1</div><div class="content" id="idp616864"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1900788965FM"></a><div class="nodecontent">def main(arg1, arg2):<br></br> """main entry point"""<br></br> <br></br> ... ...<br></br><br></br><br></br>if __name__ == '__main__':<br></br> if len(sys.argv) < 3:<br></br> sys.stderr.write("Usage: %s ARG1 ARG2\n" % (sys.argv[0]))<br></br> else:<br></br> main(sys.argv[1], sys.argv[2])
</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp619264")' id="imgidp619264"></img><a id="FMFreemind_Link_152952397FM"></a><div class="nodecontent">示例2</div><div class="content" id="idp619264"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1514956815FM"></a><div class="nodecontent">#!/usr/bin/python<br></br># Filename : using_sys.py<br></br><br></br>import sys<br></br><br></br>print 'The command line arguments used are:'<br></br>for i in sys.argv:<br></br> print i<br></br>print '\n\nThe PYTHONPATH is', sys.path, '\n'
</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_366917783FM"></a><div class="nodecontent">系统退出: sys.exit</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1282642521FM"></a><div class="nodecontent">标准输入输出等: sys.stdin, sys.stdout, sys.stderr</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp622848")' id="imgidp622848"></img><a id="FMFreemind_Link_104677131FM"></a><div class="nodecontent">os</div><div class="content" id="idp622848"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_621349062FM"></a><div class="nodecontent">分隔符等:os.sep, os.pathsep, os.linesep</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_859154419FM"></a><div class="nodecontent">获取进程ID: os.getpid()</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1827178551FM"></a><div class="nodecontent">得到当前路径: os.getcwd()</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_993901640FM"></a><div class="nodecontent">切换路径: os.chdir(r'c:\temp')</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp626928")' id="imgidp626928"></img><a id="FMFreemind_Link_548514188FM"></a><div class="nodecontent">将路径分解为目录和文件名:os.path.split(), os.path.dirname()</div><div class="content" id="idp626928"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1607728142FM"></a><div class="nodecontent">>>> os.path.split('/home/swaroop/poem.txt')<br></br>('/home/swaroop', 'poem.txt')</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1702591789FM"></a><div class="nodecontent">os.path.dirname('/etc/init.d/apachectl')</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_33994863FM"></a><div class="nodecontent">os.path.basename('/etc/init.d/apachectl')</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_926453234FM"></a><div class="nodecontent">判断是文件还是目录: os.path.isdir(r'c:\temp'), os.path.isfile(r'c:\temp') , 返回值 1,0</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1423188966FM"></a><div class="nodecontent">判断文件/目录是否存在 os.path.exists('/etc/passwd')</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1221600523FM"></a><div class="nodecontent">执行系统命令: os.system('ls -l /etc')</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp632928")' id="imgidp632928"></img><a id="FMFreemind_Link_999611206FM"></a><div class="nodecontent">执行系统命令并打开管道: os.popen(command [, mode='r' [, bufsize]]) </div><div class="content" id="idp632928"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1177096501FM"></a><div class="nodecontent">os.popen('ls /etc').read()</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_394702067FM"></a><div class="nodecontent">os.popen('ls /etc').readlines()</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp635792")' id="imgidp635792"></img><a id="FMFreemind_Link_320268457FM"></a><div class="nodecontent">string (字符串处理)</div><div class="content" id="idp635792"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1358868034FM"></a><div class="nodecontent">帮助: help('string')</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp637568")' id="imgidp637568"></img><a id="FMFreemind_Link_1933078418FM"></a><div class="nodecontent">示例</div><div class="content" id="idp637568"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1856424881FM"></a><div class="nodecontent">import string<br></br>fruit = "banana"<br></br>index = string.find(fruit, "a")<br></br>print index</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp639632")' id="imgidp639632"></img><a id="FMFreemind_Link_669007656FM"></a><div class="nodecontent">math (数学函数)</div><div class="content" id="idp639632"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp640640")' id="imgidp640640"></img><a id="FMFreemind_Link_1342499423FM"></a><div class="nodecontent">例如</div><div class="content" id="idp640640"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1043605905FM"></a><div class="nodecontent">import math<br></br><br></br>x = math.cos(angle + math.pi/2)<br></br>x = math.exp(math.log(10.0))</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp642704")' id="imgidp642704"></img><a id="FMFreemind_Link_1594093952FM"></a><div class="nodecontent">re</div><div class="content" id="idp642704"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp643712")' id="imgidp643712"></img><a id="FMFreemind_Link_678261736FM"></a><div class="nodecontent">帮助</div><div class="content" id="idp643712"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1280960713FM"></a><div class="nodecontent"><a href="http://docs.python.org/lib/module-re.html">常规表达式。参考: http://docs.python.org/lib/module-re.html</a> <a href="http://docs.python.org/lib/module-re.html"><img src="/docbook/includes/images/freemind/ilink.png" alt="User Link" style="border-width:0"></img></a></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1665279567FM"></a><div class="nodecontent">>>> help('sre')</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp646672")' id="imgidp646672"></img><a id="FMFreemind_Link_1984768997FM"></a><div class="nodecontent">正则表达式语法</div><div class="content" id="idp646672"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1848594337FM"></a><div class="nodecontent">^, $ 指代 字符串开始,结束。对于 re.MULTILINE 模式,^,$ 除了指代字符串开始和结尾,还指代一行的开始和结束</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1578438260FM"></a><div class="nodecontent">[ ] 字符列表,其中的 ^ 含义为“非”</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp649472")' id="imgidp649472"></img><a id="FMFreemind_Link_578048247FM"></a><div class="nodecontent">*, +, ?, {m,n} : 量词(默认贪婪模式,尽量多的匹配)</div><div class="content" id="idp649472"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_682235016FM"></a><div class="nodecontent">例如:表达式 "<.*>" 用于匹配字符串 '<H1>title</H1>',会匹配整个字串,而非 '<H1>'</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1625132105FM"></a><div class="nodecontent">>>> re.match('<.*>', '<H1>titile</H1>').group()<br></br>'<H1>titile</H1>'
</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp652320")' id="imgidp652320"></img><a id="FMFreemind_Link_348096491FM"></a><div class="nodecontent">*?, +?, ?? : 避免贪婪模式的量词</div><div class="content" id="idp652320"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1783406171FM"></a><div class="nodecontent">例如:表达式 "<.*?>" 用于匹配字符串 '<H1>title</H1>',只匹配 '<H1>'</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_95432027FM"></a><div class="nodecontent">>>> re.match('<.*?>', '<H1>titile</H1>').group()<br></br>'<H1>'
</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp655008")' id="imgidp655008"></img><a id="FMFreemind_Link_1560261743FM"></a><div class="nodecontent">{m,n}? : 同样尽量少的匹配(非贪婪模式)</div><div class="content" id="idp655008"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_683700227FM"></a><div class="nodecontent">>>> re.match('<.{,20}>', '<H1>titile</H1>').group()<br></br>'<H1>titile</H1>'</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1307133421FM"></a><div class="nodecontent">>>> re.match('<.{,20}?>', '<H1>titile</H1>').group()<br></br>'<H1>'</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp657792")' id="imgidp657792"></img><a id="FMFreemind_Link_1984891449FM"></a><div class="nodecontent">[(] [)]</div><div class="content" id="idp657792"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_894215001FM"></a><div class="nodecontent">( 和 ),用于组合pattern,如果要匹配括号,可以使用 \(, \) 或者 [(] , [)]</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1435010317FM"></a><div class="nodecontent">( ) : 组合表达式,可以在后面匹配</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp660624")' id="imgidp660624"></img><a id="FMFreemind_Link_1912342277FM"></a><div class="nodecontent">(?iLmsux)</div><div class="content" id="idp660624"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_778716223FM"></a><div class="nodecontent">(? 之后跟 iLmsux 任意字符,相当于设置了 re.I, re.L, re.M, re.S, re.U, re.X</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_761572797FM"></a><div class="nodecontent">参见 re 选项</div> <a onclick="getVisibleParents('FMFreemind_Link_1614204460FM')" href="#FMFreemind_Link_1614204460FM"><img src="/docbook/includes/images/freemind/ilink.png" class="ilink" alt="Arrow Link"></img></a></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_198568408FM"></a><div class="nodecontent">>>> re.search('(?i)(T[A-Z]*)','<h1>title</h1>').groups()<br></br>('title',)
</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp665920")' id="imgidp665920"></img><a id="FMFreemind_Link_798927944FM"></a><div class="nodecontent">(?P<name>pattern) : 用名称指代匹配</div><div class="content" id="idp665920"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_435242639FM"></a><div class="nodecontent">>>> re.match('(?P<p>.*?)(?::\s*)(?P<msg>.*)', 'prompt: enter your name').group('p')<br></br>'prompt'<br></br>>>> re.match('(?P<p>.*?)(?::\s*)(?P<msg>.*)', 'prompt: enter your name').group('msg')<br></br>'enter your name'<br></br>>>> re.match('(?P<p>.*?)(?::\s*)(?P<msg>.*)', 'prompt: enter your name').group(0)<br></br>'prompt: enter your name'<br></br>>>> re.match('(?P<p>.*?)(?::\s*)(?P<msg>.*)', 'prompt: enter your name').group(1)<br></br>'prompt'<br></br>>>> re.match('(?P<p>.*?)(?::\s*)(?P<msg>.*)', 'prompt: enter your name').group(2)<br></br>'enter your name'
</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_459788692FM"></a><div class="nodecontent">用 r'\1' 指代匹配<br></br>>>> re.sub ( 'id:\s*(?P<id>\d+)', 'N:\\1', 'userlist\nid:001,user001:jiangxin\nid:002,user003:tom\nid:003,user003:jerry\n')<br></br>'userlist\nN:001,user001:jiangxin\nN:002,user003:tom\nN:003,user003:jerry\n'<br></br>>>> re.sub ( 'id:\s*(?P<id>\d+)', r'N:\1', 'userlist\nid:001,user001:jiangxin\nid:002,user003:tom\nid:003,user003:jerry\n')<br></br>'userlist\nN:001,user001:jiangxin\nN:002,user003:tom\nN:003,user003:jerry\n'
</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1455038878FM"></a><div class="nodecontent">用 r'\g<name>' 指代匹配<br></br>>>> re.sub ( 'id:\s*(?P<id>\d+)', r'N:\g<id>', 'userlist\nid:001,user001:jiangxin\nid:002,user003:tom\nid:003,user003:jerry\n')<br></br>'userlist\nN:001,user001:jiangxin\nN:002,user003:tom\nN:003,user003:jerry\n'
</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp670800")' id="imgidp670800"></img><a id="FMFreemind_Link_863111768FM"></a><div class="nodecontent">(?P=name) : 指代前面发现的命名匹配</div><div class="content" id="idp670800"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1977842379FM"></a><div class="nodecontent">>>> re.findall ( 'id:\s*(?P<id>\d+)', 'userlist\nid:001,user001:jiangxin\nid:002,user003:tom\nid:003,user003:jerry\n')<br></br>['001', '002', '003']
</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1891022168FM"></a><div class="nodecontent">>>> re.findall ( 'id:\s*(?P<id>\d+),\s*user(?P=id):', 'userlist\nid:001,user001:jiangxin\nid:002,user003:tom\nid:003,user003:jerry\n')<br></br>['001', '003']
</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_149284877FM"></a><div class="nodecontent">(?#...) : 为注释</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp674272")' id="imgidp674272"></img><a id="FMFreemind_Link_357060819FM"></a><div class="nodecontent">(?:pattern)</div><div class="content" id="idp674272"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_676208385FM"></a><div class="nodecontent">组合表达式,但并不计入分组</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_107925428FM"></a><div class="nodecontent">对比下面的两个例子:<br></br>>>> re.match('(.*?:\s*)(.*)', 'prompt: enter your name').group(1)<br></br>'prompt: '<br></br>>>> re.match('(?:.*?:\s*)(.*)', 'prompt: enter your name').group(1)<br></br>'enter your name'
</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp677232")' id="imgidp677232"></img><a id="FMFreemind_Link_1537799053FM"></a><div class="nodecontent">(?=pattern) 正向前断言</div><div class="content" id="idp677232"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_754145952FM"></a><div class="nodecontent">Matches if pattern matches next, but doesn't consume any of the string. </div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp678832")' id="imgidp678832"></img><a id="FMFreemind_Link_1526998348FM"></a><div class="nodecontent">例如:
</div><div class="content" id="idp678832"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><div class="nodecontent">只改动出现在 foobar 中的 foo, 不改变如 fool, foolish 中出现的 foo</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1858179750FM"></a><div class="nodecontent"><br></br>$line="foobar\nfool";<br></br><br></br>## foo后面出现bar,且 bar 的内容不再替换之列。<br></br>$line =~ s/foo(?=bar)/something/gm;<br></br><br></br>print "$line\n";<br></br><br></br>显示 <br></br><br></br>somethingbar<br></br>fool
</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp681792")' id="imgidp681792"></img><a id="FMFreemind_Link_1573848628FM"></a><div class="nodecontent">(?!pattern) 负向前断言</div><div class="content" id="idp681792"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_342741595FM"></a><div class="nodecontent">则和 (?=pattern) 相反。 Matches if ... doesn't match next. This is a negative lookahead assertion.</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp683648")' id="imgidp683648"></img><a id="FMFreemind_Link_715481235FM"></a><div class="nodecontent">例如: 改动除了 foobar 外单词中的 foo, 如 fool, foolish 中出现的 foo。 </div><div class="content" id="idp683648"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_939655795FM"></a><div class="nodecontent"><br></br><br></br><br></br>$line="foobar\nfool";<br></br><br></br>## foo后面不是bar,且 (?!..) 中的内容不再替换之列。<br></br>$line =~ s/foo(?!bar)/something/gm;<br></br><br></br>print "$line\n";<br></br><br></br>显示 <br></br><br></br>foobar<br></br>somethingl
</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp685904")' id="imgidp685904"></img><a id="FMFreemind_Link_1190136496FM"></a><div class="nodecontent">(?<=pattern) 正向后断言</div><div class="content" id="idp685904"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1068314943FM"></a><div class="nodecontent">正向后断言。Matches if the current position in the string is preceded by a match for ... that ends at the current position.</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp687792")' id="imgidp687792"></img><a id="FMFreemind_Link_815003890FM"></a><div class="nodecontent">如下例:</div><div class="content" id="idp687792"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1142899811FM"></a><div class="nodecontent">$line="foobar\nbarfoo\nbar foo\na fool";<br></br><br></br>## 替换 bar 后面的 foo,(bar) 不再替换之列。<br></br>$line =~ s/(?<=bar)foo/something/gm;<br></br><br></br>print "$line\n";<br></br><br></br>显示 <br></br><br></br>foobar<br></br>barsomething<br></br>bar foo<br></br>a fool
</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp689984")' id="imgidp689984"></img><a id="FMFreemind_Link_1595727605FM"></a><div class="nodecontent">(?<!pattern) 负向后断言</div><div class="content" id="idp689984"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_491677147FM"></a><div class="nodecontent">负向后断言。 Matches if the current position in the string is not preceded by a match for .... This is called a negative lookbehind assertion. </div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp691888")' id="imgidp691888"></img><a id="FMFreemind_Link_1294280859FM"></a><div class="nodecontent">如下例:</div><div class="content" id="idp691888"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1777875725FM"></a><div class="nodecontent">$line="foobar\nbarfoo\nbar foo\na fool";<br></br><br></br>## 替换 foo,但之前不能是 bar。<br></br>$line =~ s/(?<!bar)foo/something/gm;<br></br><br></br>print "$line\n";<br></br><br></br>显示 <br></br><br></br>somethingbar<br></br>barfoo<br></br>bar something<br></br>a somethingl
</div></div></div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp694208")' id="imgidp694208"></img><a id="FMFreemind_Link_1515114123FM"></a><div class="nodecontent">正则表达式特殊字符</div><div class="content" id="idp694208"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_906764446FM"></a><div class="nodecontent">\A Matches only at the start of the string.</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_514460334FM"></a><div class="nodecontent">\b Matches the empty string, but only at the beginning or end of a word</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1276794634FM"></a><div class="nodecontent">\B Matches the empty string, but only when it is not at the beginning or end of a word.</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_472028588FM"></a><div class="nodecontent">\d When the UNICODE flag is not specified, matches any decimal digit; this is equivalent to the set [0-9]. With UNICODE, it will match whatever is classified as a digit in the Unicode character properties database.</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1023791358FM"></a><div class="nodecontent">\D When the UNICODE flag is not specified, matches any non-digit character; this is equivalent to the set [^0-9]. With UNICODE, it will match anything other than character marked as digits in the Unicode character properties database.</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_861669468FM"></a><div class="nodecontent">\s When the LOCALE and UNICODE flags are not specified, matches any whitespace character; this is equivalent to the set [ \t\n\r\f\v]. With LOCALE, it will match this set plus whatever characters are defined as space for the current locale. If UNICODE is set, this will match the characters [ \t\n\r\f\v] plus whatever is classified as space in the Unicode character properties database.</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1156623175FM"></a><div class="nodecontent">\S When the LOCALE and UNICODE flags are not specified, matches any non-whitespace character; this is equivalent to the set [^ \t\n\r\f\v] With LOCALE, it will match any character not in this set, and not defined as space in the current locale. If UNICODE is set, this will match anything other than [ \t\n\r\f\v] and characters marked as space in the Unicode character properties database.</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_769433491FM"></a><div class="nodecontent">\w When the LOCALE and UNICODE flags are not specified, matches any alphanumeric character and the underscore; this is equivalent to the set [a-zA-Z0-9_]. With LOCALE, it will match the set [0-9_] plus whatever characters are defined as alphanumeric for the current locale. If UNICODE is set, this will match the characters [0-9_] plus whatever is classified as alphanumeric in the Unicode character properties database.</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_469170488FM"></a><div class="nodecontent">\W When the LOCALE and UNICODE flags are not specified, matches any non-alphanumeric character; this is equivalent to the set [^a-zA-Z0-9_]. With LOCALE, it will match any character not in the set [0-9_], and not defined as alphanumeric for the current locale. If UNICODE is set, this will match anything other than [0-9_] and characters marked as alphanumeric in the Unicode character properties database. </div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1017215840FM"></a><div class="nodecontent">\Z Matches only at the end of the string.</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp704864")' id="imgidp704864"></img><a id="FMFreemind_Link_1614204460FM"></a><div class="nodecontent">re 选项</div><div class="content" id="idp704864"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_984006274FM"></a><div class="nodecontent">re.I, re.IGNORE : 忽略大小写</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_727655425FM"></a><div class="nodecontent">re.L, re.LOCALE : \w, \W, \b, \B, \s and \S 参考当前 locale</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_929128427FM"></a><div class="nodecontent">re.M, re.MULTILINE : 将字符串视为多行,^ 和 $ 匹配字符串中的换行符。缺省只匹配字符串开始和结束。</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1882526118FM"></a><div class="nodecontent">re.S, re.DOTALL : . 匹配任意字符包括换行符。缺省匹配除了换行符外的字符</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp709408")' id="imgidp709408"></img><a id="FMFreemind_Link_1560601747FM"></a><div class="nodecontent">re.U, re.UNICODE : \w, \W, \b, \B, \d, \D, \s and \S 参考 Unicode 属性</div><div class="content" id="idp709408"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_838451568FM"></a><div class="nodecontent">>>> re.compile(ur'----(-)*\r?\n.*\b(网页类)\b',re.U).search("--------\r\nCategoryX 网页类 CategoryY".decode('utf-8')).groups()<br></br>(u'-', u'\u7f51\u9875\u7c7b')
</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1823378996FM"></a><div class="nodecontent">>>> re.compile(ur'----(-)*\r?\n.*\b(网页类)\b',re.U).search(u"--------\r\nCategoryX 网页类 CategoryY").groups()<br></br>(u'-', u'\u7f51\u9875\u7c7b')
</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp712400")' id="imgidp712400"></img><a id="FMFreemind_Link_1729036409FM"></a><div class="nodecontent">re.X, re.VERBOSE : 可以添加 # 注释,以增强表达式可读性。</div><div class="content" id="idp712400"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1150851830FM"></a><div class="nodecontent">空格被忽略。#为注释</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1229288843FM"></a><div class="nodecontent">例如:<br></br>page_invalid_chars_regex = re.compile(<br></br> ur"""<br></br> \u0000 | # NULL<br></br><br></br> # Bidi control characters<br></br> \u202A | # LRE<br></br> \u202B | # RLE<br></br> \u202C | # PDF<br></br> \u202D | # LRM<br></br> \u202E # RLM<br></br> """,<br></br> re.UNICODE | re.VERBOSE<br></br> )</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp715536")' id="imgidp715536"></img><a id="FMFreemind_Link_752016082FM"></a><div class="nodecontent">注意 match 和 search 的差异</div><div class="content" id="idp715536"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp716608")' id="imgidp716608"></img><a id="FMFreemind_Link_1220125134FM"></a><div class="nodecontent">re.match( pattern, string[, flags]) 仅在字符串开头匹配。 相当于在 pattern 前加上了一个'^'!</div><div class="content" id="idp716608"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_884530055FM"></a><div class="nodecontent">>>> p.match("")<br></br>>>> print p.match("")<br></br>None<br></br><br></br>p = re.compile( ... )<br></br>m = p.match( 'string goes here' )<br></br>if m:<br></br> print 'Match found: ', m.group()<br></br>else:<br></br> print 'No match'<br></br><br></br>
</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_450144760FM"></a><div class="nodecontent">re.search( pattern, string[, flags]) 在整个字符串中查询</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp719456")' id="imgidp719456"></img><a id="FMFreemind_Link_1420229928FM"></a><div class="nodecontent">re.compile( pattern[, flags])</div><div class="content" id="idp719456"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1518970803FM"></a><div class="nodecontent">使用 re.compile,对于需要重复使用的表达式,更有效率</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1120219349FM"></a><div class="nodecontent">prog = re.compile(pat)<br></br>result = prog.match(str)<br></br>相当于<br></br>result = re.match(pat, str)</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp722144")' id="imgidp722144"></img><a id="FMFreemind_Link_118808800FM"></a><div class="nodecontent">re.split( pattern, string[, maxsplit = 0]) 分割字符串</div><div class="content" id="idp722144"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_33434162FM"></a><div class="nodecontent">>>> re.split('\W+', 'Words, words, words.')<br></br>['Words', 'words', 'words', '']<br></br>>>> re.split('(\W+)', 'Words, words, words.')<br></br>['Words', ', ', 'words', ', ', 'words', '.', '']<br></br>>>> re.split('\W+', 'Words, words, words.', 1)<br></br>['Words', 'words, words.']</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp724608")' id="imgidp724608"></img><a id="FMFreemind_Link_123147453FM"></a><div class="nodecontent">re.findall( pattern, string[, flags])</div><div class="content" id="idp724608"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_527820707FM"></a><div class="nodecontent">查询所有匹配,返回 list</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1871621797FM"></a><div class="nodecontent">>>> p = re.compile('\d+')<br></br>>>> p.findall('12 drummers drumming, 11 pipers piping, 10 lords a-leaping')<br></br>['12', '11', '10']</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp727328")' id="imgidp727328"></img><a id="FMFreemind_Link_632173064FM"></a><div class="nodecontent">re.finditer( pattern, string[, flags])</div><div class="content" id="idp727328"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1706712107FM"></a><div class="nodecontent">查询所有匹配,返回 iterator</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1473489212FM"></a><div class="nodecontent">>>> p = re.compile('\d+')<br></br>>>> iterator = p.finditer('12 drummers drumming, 11 ... 10 ...')<br></br>>>> iterator<br></br><callable-iterator object at 0x401833ac><br></br>>>> for match in iterator:<br></br>... print match.span()<br></br>...<br></br>(0, 2)<br></br>(22, 24)<br></br>(29, 31)</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp729392")' id="imgidp729392"></img><a id="FMFreemind_Link_1625159514FM"></a><div class="nodecontent">re.sub(pattern, repl, string[, count])</div><div class="content" id="idp729392"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1969484918FM"></a><div class="nodecontent">>>> re.sub ( 'id:\s*(?P<id>\d+)', 'N:\\1', 'userlist\nid:001,user001:jiangxin\nid:002,user003:tom\nid:003,user003:jerry\n')<br></br>'userlist\nN:001,user001:jiangxin\nN:002,user003:tom\nN:003,user003:jerry\n'<br></br>>>> re.sub ( 'id:\s*(?P<id>\d+)', r'N:\1', 'userlist\nid:001,user001:jiangxin\nid:002,user003:tom\nid:003,user003:jerry\n')<br></br>'userlist\nN:001,user001:jiangxin\nN:002,user003:tom\nN:003,user003:jerry\n'
</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_449814446FM"></a><div class="nodecontent">>>> re.sub ( 'id:\s*(?P<id>\d+)', r'N:\g<id>', 'userlist\nid:001,user001:jiangxin\nid:002,user003:tom\nid:003,user003:jerry\n')<br></br>'userlist\nN:001,user001:jiangxin\nN:002,user003:tom\nN:003,user003:jerry\n'
</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp733632")' id="imgidp733632"></img><a id="FMFreemind_Link_118477699FM"></a><div class="nodecontent">re.subn( pattern, repl, string[, count]) 和 re.sub 类似,返回值不同</div><div class="content" id="idp733632"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1137663261FM"></a><div class="nodecontent">返回值为: a tuple (new_string, number_of_subs_made).</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_765351664FM"></a><div class="nodecontent">re.escape(string) : 对字符串预处理,以免其中特殊字符对正则表达式造成影响</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp736320")' id="imgidp736320"></img><img src="/docbook/includes/images/freemind/icons/idea.png" alt="idea"></img> <a id="FMFreemind_Link_499222618FM"></a><div class="nodecontent">compile 对象</div><div class="content" id="idp736320"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1888294807FM"></a><div class="nodecontent">re.compile 返回 的 compile 对象 的方法都有 re 类似方法对应,只是参数不同</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1323843007FM"></a><div class="nodecontent">re 相关对象有 flags 参数,而 compile 对象因为在建立之初已经提供了 flags,<br></br>在 compile 相应方法中,用 pos, endpos 即开始位置和结束位置参数取代 flags 参数</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1833982851FM"></a><div class="nodecontent">match( string[, pos[, endpos]])</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_152399644FM"></a><div class="nodecontent">search( string[, pos[, endpos]])</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_338230136FM"></a><div class="nodecontent">split( string[, maxsplit = 0])</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_230982905FM"></a><div class="nodecontent">findall( string[, pos[, endpos]])</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_168004261FM"></a><div class="nodecontent">finditer( string[, pos[, endpos]])</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_19406002FM"></a><div class="nodecontent">sub( repl, string[, count = 0])</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1530206109FM"></a><div class="nodecontent">subn( repl, string[, count = 0])</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp745184")' id="imgidp745184"></img><img src="/docbook/includes/images/freemind/icons/idea.png" alt="idea"></img> <a id="FMFreemind_Link_585308176FM"></a><div class="nodecontent">match 对象</div><div class="content" id="idp745184"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp746432")' id="imgidp746432"></img><a id="FMFreemind_Link_1331098911FM"></a><div class="nodecontent">expand( template)</div><div class="content" id="idp746432"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_437428858FM"></a><div class="nodecontent">利用匹配结果展开模板 template</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_829993635FM"></a><div class="nodecontent">支持 "\1", "\2", "\g<1>", "\g<name>"</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652684752")' id="imgidp140608652684752"></img><a id="FMFreemind_Link_587687336FM"></a><div class="nodecontent">group( [group1, ...])</div><div class="content" id="idp140608652684752"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_484515281FM"></a><div class="nodecontent">示例<br></br>m = re.match(r"(?P<int>\d+)\.(\d*)", '3.14')<br></br>结果<br></br>m.group(1) is '3', as is m.group('int'), and m.group(2) is '14'.</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_312132460FM"></a><div class="nodecontent">>>> p = re.compile('(a(b)c)d')<br></br>>>> m = p.match('abcd')<br></br>>>> m.group(0)<br></br>'abcd'<br></br>>>> m.group(1)<br></br>'abc'<br></br>>>> m.group(2)<br></br>'b'<br></br><br></br>>>> m.groups()<br></br>('abc', 'b')
</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652687872")' id="imgidp140608652687872"></img><a id="FMFreemind_Link_1352750112FM"></a><div class="nodecontent">groups( [default])</div><div class="content" id="idp140608652687872"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_505598492FM"></a><div class="nodecontent">返回一个 tuple, 包含从 1 开始的所有匹配</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652689584")' id="imgidp140608652689584"></img><a id="FMFreemind_Link_33130658FM"></a><div class="nodecontent">groupdict( [default])</div><div class="content" id="idp140608652689584"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1662243489FM"></a><div class="nodecontent">返回一个 dictionary,包含所有的命名匹配</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652691520")' id="imgidp140608652691520"></img><a id="FMFreemind_Link_522814490FM"></a><div class="nodecontent">start( [group]) 和 end( [group])</div><div class="content" id="idp140608652691520"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_414559152FM"></a><div class="nodecontent">分别代表第 group 组匹配在字符串中的开始和结束位置</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652693488")' id="imgidp140608652693488"></img><a id="FMFreemind_Link_184405783FM"></a><div class="nodecontent">span( [group])</div><div class="content" id="idp140608652693488"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_353336934FM"></a><div class="nodecontent">返回由 start, end 组成的 二值 tuple</div></div></div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652695664")' id="imgidp140608652695664"></img><a id="FMFreemind_Link_678551142FM"></a><div class="nodecontent">getopt(命令行处理)</div><div class="content" id="idp140608652695664"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652696672")' id="imgidp140608652696672"></img><a id="FMFreemind_Link_1441498317FM"></a><div class="nodecontent">getopt.getopt( args, options[, long_options])</div><div class="content" id="idp140608652696672"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1738337068FM"></a><div class="nodecontent">args 是除了应用程序名称外的参数,相当于: sys.argv[1:]</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_156036270FM"></a><div class="nodecontent">options 是短格式的参数支持。如果带有赋值的参数后面加上冒号":"。参见 Unix getopt()</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1005714251FM"></a><div class="nodecontent">long_options 是长格式的参数支持。如果是带有赋值的参数,参数后面加上等号“="。</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652700432")' id="imgidp140608652700432"></img><a id="FMFreemind_Link_1146047050FM"></a><div class="nodecontent">返回值: 返回两个元素</div><div class="content" id="idp140608652700432"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_782470969FM"></a><div class="nodecontent">一:返回包含 (option, value) 键值对的列表</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1727718458FM"></a><div class="nodecontent">二:返回剩余参数</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1593166682FM"></a><div class="nodecontent">异常:GetoptError ,又作 error</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652703824")' id="imgidp140608652703824"></img><a id="FMFreemind_Link_1624347125FM"></a><div class="nodecontent">示例:</div><div class="content" id="idp140608652703824"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_880785726FM"></a><div class="nodecontent">>>> import getopt<br></br>>>> args = '-a -b -cfoo -d bar a1 a2'.split()<br></br>>>> args<br></br>['-a', '-b', '-cfoo', '-d', 'bar', 'a1', 'a2']<br></br>>>> optlist, args = getopt.getopt(args, 'abc:d:')<br></br>>>> optlist<br></br>[('-a', ''), ('-b', ''), ('-c', 'foo'), ('-d', 'bar')]<br></br>>>> args<br></br>['a1', 'a2']</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1644049541FM"></a><div class="nodecontent">"""Module docstring.<br></br><br></br>This serves as a long usage message.<br></br>"""<br></br>import sys<br></br>import getopt<br></br><br></br>def main():<br></br> # parse command line options<br></br> try:<br></br> opts, args = getopt.getopt(sys.argv[1:], "hp:", ["help", "port="])<br></br> except getopt.error, msg:<br></br> print msg<br></br> print "for help use --help"<br></br> sys.exit(2)<br></br> # process options<br></br> for o, a in opts:<br></br> if o in ("-h", "--help"):<br></br> print __doc__<br></br> sys.exit(0)<br></br> elif o in ("-p", "--port"):<br></br> print "port is %d" % a<br></br><br></br> # process arguments<br></br> for arg in args:<br></br> process(arg) # process() is defined elsewhere<br></br><br></br>if __name__ == "__main__":<br></br> main()</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652707104")' id="imgidp140608652707104"></img><a id="FMFreemind_Link_1457964795FM"></a><div class="nodecontent">数据库</div><div class="content" id="idp140608652707104"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1759282105FM"></a><div class="nodecontent"><a href="http://mysql-python.sourceforge.net/MySQLdb.html">参见: http://mysql-python.sourceforge.net/MySQLdb.html</a> <a href="http://mysql-python.sourceforge.net/MySQLdb.html"><img src="/docbook/includes/images/freemind/ilink.png" alt="User Link" style="border-width:0"></img></a></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1295934551FM"></a><div class="nodecontent">LDAP</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652710448")' id="imgidp140608652710448"></img><a id="FMFreemind_Link_443746961FM"></a><div class="nodecontent">time(时间函数)</div><div class="content" id="idp140608652710448"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1027657014FM"></a><div class="nodecontent">time.time() : 返回 Unix Epoch 时间(秒),符点数</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1445903211FM"></a><div class="nodecontent">time.clock() : 进程启动后的秒数(符点数)</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_302419168FM"></a><div class="nodecontent">gmtime() : 返回 UTC 时间,格式为 tuple</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_792034827FM"></a><div class="nodecontent">localtime() : 返回本地时间,格式为 tuple</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_6754316FM"></a><div class="nodecontent">asctime() : 将 tuple 时间转换为字符串</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1474459722FM"></a><div class="nodecontent">ctime() : 将秒转换为字符串</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_646494086FM"></a><div class="nodecontent">mktime() : 将本地时间 tuple 转换为 Epoch 秒数</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1983613173FM"></a><div class="nodecontent">strftime() : 将 tuple time 依照格式转换</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1154551862FM"></a><div class="nodecontent">strptime() : 将字符串按格式转换为 tuple time</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1101721498FM"></a><div class="nodecontent">tzset() :设置时区</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652719536")' id="imgidp140608652719536"></img><a id="FMFreemind_Link_1098357290FM"></a><div class="nodecontent">logging</div><div class="content" id="idp140608652719536"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652720528")' id="imgidp140608652720528"></img><a id="FMFreemind_Link_165953604FM"></a><div class="nodecontent">logging 级别</div><div class="content" id="idp140608652720528"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1779875659FM"></a><div class="nodecontent">Level Numeric value<br></br>CRITICAL 50<br></br>ERROR 40<br></br>WARNING 30<br></br>INFO 20<br></br>DEBUG 10<br></br>NOTSET 0</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652722480")' id="imgidp140608652722480"></img><a id="FMFreemind_Link_1048306355FM"></a><div class="nodecontent">getLogger()</div><div class="content" id="idp140608652722480"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1553143244FM"></a><div class="nodecontent">缺省为 root logger, 通过 getLogger 设置新的 logger 和名称</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1616537427FM"></a><div class="nodecontent"> logging.basicConfig()<br></br> logging.getLogger("").setLevel(logging.DEBUG)<br></br> ERR = logging.getLogger("ERR")<br></br><br></br> ERR = logging.getLogger("ERR")<br></br> ERR.setLevel(logging.ERROR)<br></br><br></br> #These should log<br></br> logging.log(logging.CRITICAL, nextmessage())<br></br> logging.debug(nextmessage())<br></br> ERR.log(logging.CRITICAL, nextmessage())<br></br> ERR.error(nextmessage())<br></br><br></br> #These should not log<br></br> ERR.debug(nextmessage())</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652725872")' id="imgidp140608652725872"></img><a id="FMFreemind_Link_153652969FM"></a><div class="nodecontent">basicConfig 用于设置日志级别和格式等</div><div class="content" id="idp140608652725872"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_934812249FM"></a><div class="nodecontent">logging.basicConfig(level=logging.DEBUG,<br></br> format="%(levelname)s : %(asctime)-15s > %(message)s")
</div></div></div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652728064")' id="imgidp140608652728064"></img><img src="/docbook/includes/images/freemind/icons/ksmiletris.png" alt="ksmiletris"></img> <a id="FMFreemind_Link_957233669FM"></a><div class="nodecontent">Python 实战</div><div class="content" id="idp140608652728064"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652729568")' id="imgidp140608652729568"></img><a id="FMFreemind_Link_260521551FM"></a><div class="nodecontent">帮助框架</div><div class="content" id="idp140608652729568"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652730560")' id="imgidp140608652730560"></img><a id="FMFreemind_Link_253432660FM"></a><div class="nodecontent">__doc__</div><div class="content" id="idp140608652730560"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1148280429FM"></a><div class="nodecontent">'''PROGRAM INTRODUCTION<br></br><br></br>Usage: %(PROGRAM)s [options]<br></br><br></br>Options:<br></br><br></br> -h|--help<br></br> Print this message and exit.<br></br>'''
</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652732768")' id="imgidp140608652732768"></img><a id="FMFreemind_Link_847066778FM"></a><div class="nodecontent">函数 usage</div><div class="content" id="idp140608652732768"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1034302311FM"></a><div class="nodecontent">def usage(code, msg=''):<br></br> if code:<br></br> fd = sys.stderr<br></br> else:<br></br> fd = sys.stdout<br></br> print >> fd, _(__doc__)<br></br> if msg:<br></br> print >> fd, msg<br></br> sys.exit(code)
</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_192722296FM"></a><div class="nodecontent">说明: code 是返回值,msg 是附加的错误消息</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652735616")' id="imgidp140608652735616"></img><a id="FMFreemind_Link_229719948FM"></a><div class="nodecontent">命令行处理</div><div class="content" id="idp140608652735616"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652736512")' id="imgidp140608652736512"></img><a id="FMFreemind_Link_1561064809FM"></a><div class="nodecontent">命令行框架</div><div class="content" id="idp140608652736512"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_192275508FM"></a><div class="nodecontent">#!/usr/bin/python<br></br># -*- coding: utf-8 -*-<br></br>import sys<br></br>import getopt<br></br><br></br>def main(argv=None):<br></br> if argv is None:<br></br> argv = sys.argv<br></br> try:<br></br> opts, args = getopt.getopt(<br></br> argv[1:], "hn:", <br></br> ["help", "name="])<br></br> except getopt.error, msg:<br></br> return usage(1, msg)<br></br><br></br> for opt, arg in opts:<br></br> if opt in ('-h', '--help'):<br></br> return usage(0)<br></br> #elif opt in ('--more_options'):<br></br><br></br>if __name__ == "__main__":<br></br> sys.exit(main())</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652738480")' id="imgidp140608652738480"></img><a id="FMFreemind_Link_1139157907FM"></a><div class="nodecontent">说明</div><div class="content" id="idp140608652738480"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_269629791FM"></a><div class="nodecontent">利用 __name__ 属性,封装代码</div> <a onclick="getVisibleParents('FMFreemind_Link_1163493951FM')" href="#FMFreemind_Link_1163493951FM"><img src="/docbook/includes/images/freemind/ilink.png" class="ilink" alt="Arrow Link"></img></a></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1278061299FM"></a><div class="nodecontent">sys.argv 参见</div> <a onclick="getVisibleParents('FMFreemind_Link_148724091FM')" href="#FMFreemind_Link_148724091FM"><img src="/docbook/includes/images/freemind/ilink.png" class="ilink" alt="Arrow Link"></img></a></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652745104")' id="imgidp140608652745104"></img><a id="FMFreemind_Link_1874297203FM"></a><div class="nodecontent">之所以为 main 添加缺省参数,是为了可以在交互模式调用 main 来传参</div><div class="content" id="idp140608652745104"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_610357231FM"></a><div class="nodecontent">def main(argv=None):<br></br> if argv is None:<br></br> argv = sys.argv<br></br> # etc., replacing sys.argv with argv in the getopt() call.</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652747408")' id="imgidp140608652747408"></img><a id="FMFreemind_Link_801352190FM"></a><div class="nodecontent">为防止 main 中调用 sys.exit(),导致交互模式退出,在 main 中使用 return 语句,而非 sys.exit</div><div class="content" id="idp140608652747408"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_446215482FM"></a><div class="nodecontent">if __name__ == "__main__":<br></br> sys.exit(main())</div></div></div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_954736302FM"></a><div class="nodecontent">文件读写</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652750208")' id="imgidp140608652750208"></img><a id="FMFreemind_Link_705967840FM"></a><div class="nodecontent">unicode</div><div class="content" id="idp140608652750208"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_464029007FM"></a><div class="nodecontent">Python 里面的编码和解码也就是 unicode 和 str 这两种形式的相互转化。<br></br>编码是 unicode -> str,相反的,解码就 > 是 str -> unicode</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652752336")' id="imgidp140608652752336"></img><a id="FMFreemind_Link_684209137FM"></a><div class="nodecontent">认识 unicode</div><div class="content" id="idp140608652752336"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1669059984FM"></a><div class="nodecontent"># 因为当前 locale 是 utf-8 编码,因此字符串默认编码为 utf-8<br></br><br></br>>>> '中文'<br></br>'\xe4\xb8\xad\xe6\x96\x87'<br></br>>>> isinstance('中文', unicode)<br></br>False<br></br>>>> isinstance('中文', str)<br></br>True
</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1204464540FM"></a><div class="nodecontent"># decode 是将 str 转换为 unicode<br></br><br></br>>>> '中文'.decode('utf-8')<br></br>u'\u4e2d\u6587'<br></br>>>> isinstance('中文'.decode('utf-8'), unicode)<br></br>True<br></br>>>> isinstance('中文'.decode('utf-8'), str)<br></br>False
</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1100117807FM"></a><div class="nodecontent"># 前缀 u 定义 unicode 字串<br></br><br></br>>>> u'中文'<br></br>u'\u4e2d\u6587'<br></br>>>> isinstance(u'中文', unicode)<br></br>True<br></br>>>> isinstance(u'中文', str)<br></br>False
</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1223320298FM"></a><div class="nodecontent"># encode 将 unicode 转换为 str<br></br><br></br>>>> u'中文'.encode('utf-8')<br></br>'\xe4\xb8\xad\xe6\x96\x87'<br></br>>>> isinstance(u'中文'.encode('utf-8'), unicode)<br></br>False<br></br>>>> isinstance(u'中文'.encode('utf-8'), str)<br></br>True
</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1936298720FM"></a><div class="nodecontent">>>> len(u'中文')<br></br>2<br></br>>>> len(u'中文'.encode('utf-8'))<br></br>6<br></br>>>> len(u'中文'.encode('utf-8').decode('utf-8'))<br></br>2
</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652758160")' id="imgidp140608652758160"></img><a id="FMFreemind_Link_854324166FM"></a><div class="nodecontent">Unicode 典型错误1</div><div class="content" id="idp140608652758160"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1341805819FM"></a><div class="nodecontent">>>> "str1: %s, str2: %s" % ('中文', u'中文')<br></br>Traceback (most recent call last):<br></br> File "<stdin>", line 1, in ?<br></br>UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 6: ordinal not in range(128)
</div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652759360")' id="imgidp140608652759360"></img><a id="FMFreemind_Link_1860347565FM"></a><div class="nodecontent">解决方案</div><div class="content" id="idp140608652759360"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1811612857FM"></a><div class="nodecontent">>>> "str1: %s, str2: %s" % ('中文', '中文')<br></br>'str1: \xe4\xb8\xad\xe6\x96\x87, str2: \xe4\xb8\xad\xe6\x96\x87'
</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1432598874FM"></a><div class="nodecontent">>>> "str1: %s, str2: %s" % (u'中文', u'中文')<br></br>u'str1: \u4e2d\u6587, str2: \u4e2d\u6587'
</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652762944")' id="imgidp140608652762944"></img><a id="FMFreemind_Link_1468934295FM"></a><div class="nodecontent">Unicode 典型错误2</div><div class="content" id="idp140608652762944"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1084592210FM"></a><div class="nodecontent">mystr = '中文'<br></br>mystr.encode('gb18030') <br></br><br></br>报错:<br></br>Traceback (most recent call last):<br></br> File "<stdin>", line 1, in ?<br></br>UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)
</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_414250713FM"></a><div class="nodecontent">错误解析:<br></br>mystr.encode('gb18030') 这句代码将 mystr 重新编码为 gb18030 的格式,即进行 unicode -> str 的转换。因为 mystr 本身就是 str 类型的,因此 Python 会自动的先将 mystr 解码为 unicode ,然后再编码成 gb18030。<br></br><br></br>因为解码是python自动进行的,我们没有指明解码方式,python 就会使用 sys.defaultencoding 指明的方式来解码。很多情况下 sys.defaultencoding 是 ANSCII,如果 mystr 不是这个类型就会出错。<br></br><br></br>拿上面的情况来说,缺省 sys.defaultencoding 是 anscii,而 mystr 的编码方式和文件的编码方式一致,是 utf8 的,所以出错了。
</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652765696")' id="imgidp140608652765696"></img><a id="FMFreemind_Link_1245470747FM"></a><div class="nodecontent">通过 sys.setdefaultencoding 设置字符串缺省编码</div><div class="content" id="idp140608652765696"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_293862900FM"></a><div class="nodecontent">#! /usr/bin/env python<br></br># -*- coding: utf-8 -*-<br></br><br></br>import sys<br></br>reload(sys) # Python2.5 初始化后会删除 sys.setdefaultencoding 这个方法,我们需要重新载入<br></br>sys.setdefaultencoding('utf-8')<br></br><br></br>mystr = '中文'<br></br><br></br># 缺省先用定义的缺省字符集将 str 解码为 unicode,<br></br># 之后编码为 gb18030<br></br>mystr.encode('gb18030') </div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652768800")' id="imgidp140608652768800"></img><a id="FMFreemind_Link_321128759FM"></a><div class="nodecontent">显式将 str 转换为 unicode, 再编码</div><div class="content" id="idp140608652768800"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1030728748FM"></a><div class="nodecontent">#! /usr/bin/env python<br></br># -*- coding: gb2312 -*-<br></br><br></br>s = '中文'<br></br>s.decode('gb2312').encode('big5')
</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1295964751FM"></a><div class="nodecontent">#! /usr/bin/env python<br></br># -*- coding: utf-8 -*-<br></br><br></br>s = '中文'<br></br><br></br># 即使文件编码为 utf-8,sys 的缺省字符编码仍为 ascii,需要显式设置解码的字符集为 utf-8<br></br>print s.decode('utf-8')<br></br>print s.decode('utf-8').encode('gb18030')</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652771792")' id="imgidp140608652771792"></img><a id="FMFreemind_Link_1577453535FM"></a><div class="nodecontent">unicode 函数</div><div class="content" id="idp140608652771792"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1167420175FM"></a><div class="nodecontent">是 python 内置函数。将字符串由'charset' 字符集转换为 unicode</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_406394169FM"></a><div class="nodecontent">unicode (message, charset)</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1653381799FM"></a><div class="nodecontent">unicode('中文字符串', 'gbk')</div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652774960")' id="imgidp140608652774960"></img><a id="FMFreemind_Link_444729065FM"></a><div class="nodecontent">encode 负责 uicode --> str</div><div class="content" id="idp140608652774960"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1544645543FM"></a><div class="nodecontent">unicode('中文字符串', 'gbk').encode('gb18030')</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652777008")' id="imgidp140608652777008"></img><a id="FMFreemind_Link_185874714FM"></a><div class="nodecontent">调试</div><div class="content" id="idp140608652777008"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652777984")' id="imgidp140608652777984"></img><a id="FMFreemind_Link_202546526FM"></a><div class="nodecontent">手动调试函数</div><div class="content" id="idp140608652777984"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_86653723FM"></a><div class="nodecontent">运行命令行 python</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1246587162FM"></a><div class="nodecontent">用 import 加载程序,模块名为程序名</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1834294390FM"></a><div class="nodecontent">以 程序名.函数名(参数) 方式调试函数</div></div></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652781600")' id="imgidp140608652781600"></img><a id="FMFreemind_Link_1027143563FM"></a><div class="nodecontent">语法检查</div><div class="content" id="idp140608652781600"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1285707603FM"></a><div class="nodecontent">PyLint 除了语法错误检查外,还能提供很多修改建议。诸如:发现 Tab 和空格混用进行缩进,……</div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1221437806FM"></a><div class="nodecontent"><a href="http://www.logilab.org/projects/pylint">PyLint 网址: http://www.logilab.org/projects/pylint</a> <a href="http://www.logilab.org/projects/pylint"><img src="/docbook/includes/images/freemind/ilink.png" alt="User Link" style="border-width:0"></img></a></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652784752")' id="imgidp140608652784752"></img><a id="FMFreemind_Link_103453658FM"></a><div class="nodecontent">Python IDE</div><div class="content" id="idp140608652784752"><div class="node"><img src="/docbook/includes/images/freemind/hide.png" class="hideshow" alt="hide" onClick='toggle("idp140608652785648")' id="imgidp140608652785648"></img><a id="FMFreemind_Link_1389243951FM"></a><div class="nodecontent">Eclipse</div><div class="content" id="idp140608652785648"><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_757073833FM"></a><div class="nodecontent"><a href="http://www.eclipse.org/">http://www.eclipse.org/</a> <a href="http://www.eclipse.org/"><img src="/docbook/includes/images/freemind/ilink.png" alt="User Link" style="border-width:0"></img></a></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_1529032839FM"></a><div class="nodecontent"><a href="http://www.javasoft.com/">http://www.javasoft.com/</a> <a href="http://www.javasoft.com/"><img src="/docbook/includes/images/freemind/ilink.png" alt="User Link" style="border-width:0"></img></a></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_659522761FM"></a><div class="nodecontent"><a href="http://pydev.sourceforge.net">Pydev</a> <a href="http://pydev.sourceforge.net"><img src="/docbook/includes/images/freemind/ilink.png" alt="User Link" style="border-width:0"></img></a></div></div></div></div><div class="node"><img src="/docbook/includes/images/freemind/leaf.png" class="hideshow" alt="leaf"></img><a id="FMFreemind_Link_889819658FM"></a><div class="nodecontent">Boa</div></div></div></div></div></div></div></div><script type="text/javascript" src="/docbook/includes/js/footer.js"></script><script type="text/javascript">
write_footer("/docbook");
</script></body></html>