-
Notifications
You must be signed in to change notification settings - Fork 83
/
Copy pathindex.html
324 lines (298 loc) · 16.7 KB
/
index.html
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8' />
<meta http-equiv="X-UA-Compatible" content="chrome=1" />
<meta name="description" content="Python for Developers : First edition in English" />
<link rel="stylesheet" type="text/css" media="screen" href="stylesheets/stylesheet.css">
<link rel="stylesheet" type="text/css" media="screen" href="stylesheets/custom.css">
<title>Python for Developers</title>
</head>
<body>
<!-- HEADER -->
<div id="header_wrap" class="outer">
<header class="inner">
<a id="forkme_banner" href="https://github.com/ricardoduarte/python-for-developers">View on GitHub</a>
<h1 id="project_title">Python for Developers</h1>
<h2 id="project_tagline">First edition in English</h2>
<section id="downloads">
<a class="zip_download_link" href="https://github.com/ricardoduarte/python-for-developers/zipball/master">Download this project as a .zip file</a>
<a class="tar_download_link" href="https://github.com/ricardoduarte/python-for-developers/tarball/master">Download this project as a tar.gz file</a>
</section>
</header>
</div>
<!-- MAIN CONTENT -->
<div id="main_content_wrap" class="outer">
<section id="main_content" class="inner">
<h4>
This book is geared toward those who already have programming knowledge. It covers topics that include:
creation of user interfaces, computer graphics, internet applications, distributed systems, among other
issues.
</h4>
<div id="TOC">
<ol>
<li><a href="#foreword">Foreword</a></li>
<li><a href="#content">Content</a></li>
<li><a href="#license">License</a></li>
<li><a href="#acknowledgment">Acknowledgment</a></li>
<li><a href="#author">About the author</a></li>
<li><a href="#book">Using the book</a></li>
</ol>
</div>
<div id="book-cover">
<img src="images/pypd_cover2e.jpg" />
</div>
<h3>
<a name="prefacio1" class="anchor" href="#foreword">
<span class="octicon octicon-link"></span></a>Foreword
</h3>
<p>
Dynamic languages were seen in the past only as scripting languages, used to automate small tasks, but with
the passing of time, they grew, matured and conquered their place in the market, to the point of calling
the attention of the major providers of technology.
</p>
<p>
Several factors contributed to this change, such as the internet, open source software and agile
development methodologies. The internet has enabled the sharing of information in a way unprecedented in
history, which made possible the growth of open source software. Dynamic languages are usually open source
and share the same features and in some cases, the same goals.
</p>
<p>
Among the dynamic languages, Python stands out as one of the most popular and powerful. There is a lively
community of language users in the world, and this is reflected in active mailing lists and many tools
available in open source.
</p>
<p>
Learning a new programming language means learning to think differently. And learn a dynamic language
represents a paradigm shift even harder for those people who have spent years developing in static languages.
</p>
<p>
The e-book "Python para Desenvolvedores" ("Python for Developers") aimed to fill a gap, which was the lack
of free courseware in Portuguese about the Python programming language. The work was adopted as a support
material for several universities in Brazil, served as a reference for academic papers and has been
downloaded over 100,000 times from its official website.
</p>
<p>
This e-book was originally written in Portuguese and was translated by a small group of volunteers who do
not speak English natively, so we ask for help from those who know better the English language, to refine
the work, which we believe is a meaningful contribution to the Python users around the world.
</p>
<h3>
<a name="content" class="anchor" href="#content">
<span class="octicon octicon-link"></span></a>Content
</h3>
<p>
The chapters below were rendered through <a href="http://nbviewer.ipython.org/">nbviewer</a> in real time. They
are read-only. To change any of the content, simply clone this project in <em>Github</em>.
</p>
<h4>Part I</h4>
<hr />
<p>
This part deals with the basics of Python programming language, including syntax, types,
control structures, functions, and documentation.
</p>
<ul>
<li><a href="http://nbviewer.ipython.org/urls/raw.github.com/ricardoduarte/python-for-developers/master/Chapter1/Chapter1_Introduction.ipynb">
Chapter 1: Introduction</a></li>
<li><a href="http://nbviewer.ipython.org/urls/raw.github.com/ricardoduarte/python-for-developers/master/Chapter2/Chapter2_Syntax.ipynb">
Chapter 2: Syntax</a></li>
<li><a href="http://nbviewer.ipython.org/urls/raw.github.com/ricardoduarte/python-for-developers/master/Chapter3/Chapter3_Control_flow.ipynb">
Chapter 3: Control Flow</a></li>
<li><a href="http://nbviewer.ipython.org/urls/raw.github.com/ricardoduarte/python-for-developers/master/Chapter4/Chapter4_Loops.ipynb">
Chapter 4: Loops</a></li>
<li><a href="http://nbviewer.ipython.org/urls/raw.github.com/ricardoduarte/python-for-developers/master/Chapter5/Chapter5_Types.ipynb">
Chapter 5: Types</a></li>
<li><a href="http://nbviewer.ipython.org/urls/raw.github.com/ricardoduarte/python-for-developers/master/Chapter6/Chapter6_Functions.ipynb">
Chapter 6: Functions</a></li>
<li><a href="http://nbviewer.ipython.org/urls/raw.github.com/ricardoduarte/python-for-developers/master/Chapter7/Chapter7_Documentation.ipynb">
Chapter 7: Documentation</a></li>
<li><a href="http://nbviewer.ipython.org/urls/raw.github.com/ricardoduarte/python-for-developers/master/ExercisesI/ExercisesI.ipynb">
Exercises I</a></li>
</ul>
<h4>Part II</h4>
<hr />
<p>
This part is about modules and packages, highlighting some of the most important ones that are present in
standard library of the language, installation of third-party libraries, exceptions and introspection.
</p>
<ul>
<li><a href="http://nbviewer.ipython.org/urls/raw.githubusercontent.com/ricardoduarte/python-for-developers/master/Chapter8/Chapter8_Modules.ipynb">
Chapter 8: Modules</a></li>
<li><a href="http://nbviewer.ipython.org/urls/raw.githubusercontent.com/ricardoduarte/python-for-developers/master/Chapter9/Chapter9_Scope_of_names.ipynb">
Chapter 9: Scope of names</a></li>
<li><a href="http://nbviewer.ipython.org/urls/raw.githubusercontent.com/ricardoduarte/python-for-developers/master/Chapter10/Chapter10_Packages.ipynb">
Chapter 10: Packages</a></li>
<li> <a href="http://nbviewer.ipython.org/urls/raw.githubusercontent.com/ricardoduarte/python-for-developers/master/Chapter11/Chapter11_Standard_library.ipynb">
Chapter 11: Standard library </a> </li>
<li> <a href="http://nbviewer.ipython.org/urls/raw.githubusercontent.com/ricardoduarte/python-for-developers/master/Chapter12/Chapter12_Third_Party_Libraries.ipynb">
Chapter 12: Third party libraries </a> </li>
<li> <a href="http://nbviewer.ipython.org/urls/raw.githubusercontent.com/ricardoduarte/python-for-developers/master/Chapter13/Chapter13_Exceptions.ipynb">
Chapter 13: Exceptions </a> </li>
<li> <a href="http://nbviewer.ipython.org/urls/raw.githubusercontent.com/ricardoduarte/python-for-developers/master/Chapter14/Chapter14_Introspection.ipynb">
Chapter 14: Introspection </a> </li>
<li> <a href="#"> Exercises II </a> </li>
</ul>
<h4>Part III</h4>
<hr />
<p>
This part is divided into two topics: generators, an increasingly present technology in the language, and
functional programming.
</p>
<ul>
<li> <a href="http://nbviewer.ipython.org/urls/raw.githubusercontent.com/ricardoduarte/python-for-developers/master/Chapter15/Chapter15_Generators.ipynb">
Chapter 15: Generators </a> </li>
<li> <a href="#"> Chapter 16: Functional Programming </a> </li>
<li> <a href="#"> Exercises III </a> </li>
</ul>
<h4>Part IV</h4>
<hr />
<p>
This part mainly focuses on object orientation, and also addresses decorators and automated tests.
</p>
<ul>
<li> <a href="#"> Chapter 17: Decorators </a> </li>
<li> <a href="#"> Chapter 18: Classes </a> </li>
<li> <a href="#"> Chapter 19: Single inheritance </a> </li>
<li> <a href="#"> Chapter 20: Multiple Inheritance </a> </li>
<li> <a href="#"> Chapter 21: Properties </a> </li>
<li> <a href="#"> Chapter 22: Operator overloading </a> </li>
<li> <a href="#"> Chapter 23: Metaclasses </a> </li>
<li> <a href="#"> Chapter 24: Class decorators </a> </li>
<li> <a href="#"> Chapter 25: Automated Testing </a> </li>
<li> <a href="#"> Exercises IV </a> </li>
</ul>
<h4>Part V</h4>
<hr />
<p>
This part covers various technologies that today are provided by applications mainly to deal
with storage and information exchange: database access, persistence, XML and Web. In addition to these
topics, we have the use of <em> threads </em> and the MVC architecture.
</p>
<ul>
<li> <a href="#"> Chapter 26: Threads </a> </li>
<li> <a href="#"> Chapter 27: Persistence </a> </li>
<li> <a href="#"> Chapter 28: XML </a> </li>
<li> <a href="#"> Chapter 29: Database </a> </li>
<li> <a href="#"> Chapter 30: Web </a> </li>
<li> <a href="#"> Chapter 31: MVC </a> </li>
<li> <a href="#"> Exercises V</a> </li>
</ul>
<h4>Part VI</h4>
<hr />
<p>
This part presents some features of the packages NumPy, SciPy and Matplolib, and also of known
graphical interfaces <em> toolkits </em>. Also, a brief introduction to computer graphics and
distributed processing. Finally, comments about performance in Python and ways of packaging and
distribute applications.
</p>
<ul>
<li> <a href="#"> Chapter 32: Numerical Processing </a> </li>
<li> <a href="#"> Chapter 33: GUI </a> </li>
<li> <a href="#"> Chapter 34: Computer graphics </a> </li>
<li> <a href="#"> Chapter 35: Image Processing </a> </li>
<li> <a href="#"> Chapter 36: SVG </a> </li>
<li> <a href="#"> Chapter 37: Images in three dimensions </a> </li>
<li> <a href="#"> Chapter 38: Distributed Processing </a> </li>
<li> <a href="#"> Chapter 39: Performance </a> </li>
<li> <a href="#"> Chapter 40: Packaging and distribution </a> </li>
<li> <a href="#"> Exercises VI </a> </li>
</ul>
<h4>Appendix</h4>
<hr />
<p>
This part focuses on other technologies that have to live with Python in several ways. And the
end, the answers of the exercises proposed in the previous parts.
</p>
<ul>
<li> <a href="#"> Appendix A: Integration with applications </a></li>
<li> <a href="#"> Appendix B: Blender </a></li>
<li> <a href="#"> Appendix C: GIMP </a></li>
<li> <a href="#"> Appendix D: Inkscape </a></li>
<li> <a href="#"> Appendix E: BrOffice.org </a></li>
<li> <a href="#"> Appendix F: Integration with other languages </a></li>
<li> <a href="#"> Appendix G: Integration with. NET </a></li>
<li> <a href="#"> Answers to exercises I </a></li>
<li> <a href="#"> Answers to exercises II </a></li>
<li> <a href="#"> Answers to exercises III </a></li>
<li> <a href="#"> Answers to exercises IV </a></li>
<li> <a href="#"> Answers to exercises V </a></li>
<li> <a href="#"> Answers to exercises VI </a></li>
</ul>
<h3>
<a name="license" class="anchor" href="#license">
<span class="octicon octicon-link"></span></a>License
</h3>
<img id="image-cc" src="images/by-nc-sa.png" width="150" height="52"/>
<p>
This work is licensed under a Creative Commons Attribution - Noncommercial -
ShareAlike license. To view a copy of this license, visit <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/br/">http://creativecommons.org/licenses/by-nc-sa/3.0/br/</a>
or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA.
</p>
<h3>
<a name="acknowledgment" class="anchor" href="#acknowledgment">
<span class="octicon octicon-link"></span></a>Acknowledgment
</h3>
<p>
I would like to thank my wife and my parents, for their patience during the
creation of this work.
</p>
<p>
Besides them, I would like to thank everyone who supported and helped to publicize the book.
</p>
<h3>
<a name="author" class="anchor" href="#author">
<span class="octicon octicon-link"></span></a>About the author
</h3>
<p>
Luiz Eduardo Borges is an engineer and systems analyst, a graduate degree in Computer Graphics by
State University of Rio de Janeiro (UERJ). He has been working for over two decades in computer science under
various ways.
</p>
<h3>
<a name="book" class="anchor" href="#author">
<span class="octicon octicon-link"></span></a>Using the book
</h3>
<p>
This book can be read in two different ways:
<ol>
<li>
The first way is the most interactive of all. Here you have to clone the repository of the book to
download all files .ipynb to your local machine. If you have IPython
installed, you can then view all the chapters in your browser and run the code
examples. This is one of the best ways to maximize your learning, but some dependencies
must be installed on a machine.
</li>
<li>
The second way is to use the site <a href="http://nbviewer.ipython.org/">nbviewer</a> which presents the
<em>IPython Notebook</em> right in your browser. The content is updated according to the
repository updates. To access the chapters, use the links on the Content section above.
</li>
<!--li>
The third way is by downloading the
<a href="download/python_for_developers.pdf"> PDF file of the book </a>. Remember though that
PDFs are static and therefore not interactive.
</li-->
</ol>
</p>
</section>
</div>
<!-- FOOTER -->
<div id="footer_wrap" class="outer">
<footer class="inner">
<p class="copyright">Python for Developers maintained by <a href="https://github.com/ricardoduarte">ricardoduarte</a></p>
<p>Published with <a href="http://pages.github.com">GitHub Pages</a> and
<a href="http://nbviewer.ipython.org/">IPython Notebook Viewer</a></p>
</footer>
</div>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-37218909-3");
pageTracker._trackPageview();
} catch(err) {}
</script>
</body>
</html>