Whetting Your Appetite
如果你有很多工作是通過電腦來完成的,那麼你一定希望其中的很多事情能夠自動地實現。比方說,你希望在文字檔中實現尋找和替換的功能,以某一種機制實現照片的重新命名以及重新排序的功能,一個小型的資料庫甚至是一個自己的遊戲。
如果你是一個專業的軟體開發人員,你要使用諸如C/C++/Java這樣的開發語言卻發現他們的開發週期太長了(編程/編譯/測試/重新編譯)。也許你正在為編寫這樣的一個庫或者是一組測試案例而苦惱。或者你曾經已經寫過一些能夠被其它語言擴充的代碼,而你又不希望設計一個全新的語言來實現你的目的。
Python就是那個你苦苦期盼的語言。
你可能會寫一些Unix指令碼代碼或者是Windows的批次檔,但是指令碼語言的優點僅僅在於它能夠輕易地移動檔案和變化的資料,但卻嫩一編寫出GUI或者遊戲。也許你能夠寫C/C++/Java程式,但是它們往往會花費你大量的時間在開放上。Python更容易使用,具備很好的相容性,同時也能夠使你的工作儘快地完成。
Python允許你將程式分成可以被複用的模組。它包含了很多的標準模組並且能夠作為你程式開發的基本單元,或者作為你學習這門語言的例子。這些模組包含了檔案IO,系統調用,連接埠甚至使用者圖形介面介面TK。
Python是一種直譯式的語言,它能夠幫你省去大量的編譯與連結的時間。解譯器能夠被互動式地使用,它使得開發人員能夠輕鬆地對語言的特性進行測試,寫一些一次性的項目,它也使得調試的過程變得非常輕鬆。它同時也是一個非常方便的計算機。
Python使得語言簡潔而具有很強的可讀性。用Python寫的程式往往比C,C++,Java寫的程式要簡短。有以下幾個原因:
內建資料類型使得複雜的計算能夠通過一個簡單的運算式實現語句通過縮排進行識別從而避免了使用括弧的麻煩不需要變數類型的聲明
Python具有很強的可擴充性。如果你會用C編寫代碼,那麼你將很輕鬆地將代碼或模組內嵌至Python程式中,或者對關鍵區段執行最高效的操作。
這種語言的命名Python是來源於一個BBC的電影” Monty Python’s Flying Circus”而與蟒蛇沒有絲毫的聯絡。將該電影中的一些名字寫進程式中不僅僅是可行的,還應該是被鼓勵的!
既然你現在對Python這種語言如此興奮,你一定會希望瞭解更多的細節。因為學習一種語言的最佳方式就是去運用它,那麼這個知道將帶您一起走進Python的世界。
在下一章中,我們將介紹解譯器的機制。它是很乏味的一種知識,但是卻對你將來運行Python程式起到至關重要的作用。
該指導的其餘部分將通過例子介紹Python的語言特性。順序是:
simple expressions, statements and data types
→
functions and modules
→
advanced concepts
[Original]
If you do much work on computers, eventually you find that there’s some task you’d like to automate. For example, you may wish to perform a search-and-replace over a large number of text files, or rename and rearrange a bunch of photo files in a complicated way. Perhaps you’d like to write a small custom database, or a specialized GUI application, or a simple game.
If you’re a professional software developer, you may have to work with several C/C++/Java libraries but find the usual write/compile/test/re-compile cycle is too slow. Perhaps you’re writing a test suite for such a library and find writing the testing code a tedious task. Or maybe you’ve written a program that could use an extension language, and you don’t want to design and implement a whole new language for your application.
Python is just the language for you.
You could write a Unix shell script or Windows batch files for some of these tasks, but shell scripts are best at moving around files and changing text data, not well-suited for GUI applications or games. You could write a C/C++/Java program, but it can take a lot of development time to get even a first-draft program. Python is simpler to use, available on Windows, Mac OS X, and Unix operating systems, and will help you get the job done more quickly.
Python is simple to use, but it is a real programming language, offering much more structure and support for large programs than shell scripts or batch files can offer. On the other hand, Python also offers much more error checking than C, and, being a very-high-level language, it has high-level data types built in, such as flexible arrays and dictionaries. Because of its more general data types Python is applicable to a much larger problem domain than Awk or even Perl, yet many things are at least as easy in Python as in those languages.
Python allows you to split your program into modules that can be reused in other Python programs. It comes with a large collection of standard modules that you can use as the basis of your programs — or as examples to start learning to program in Python. Some of these modules provide things like file I/O, system calls, sockets, and even interfaces to graphical user interface toolkits like Tk.
Python is an interpreted language, which can save you considerable time during program development because no compilation and linking is necessary. The interpreter can be used interactively, which makes it easy to experiment with features of the language, to write throw-away programs, or to test functions during bottom-up program development. It is also a handy desk calculator.
Python enables programs to be written compactly and readably. Programs written in Python are typically much shorter than equivalent C, C++, or Java programs, for several reasons:
· the high-level data types allow you to express complex operations in a single statement;
· statement grouping is done by indentation instead of beginning and ending brackets;
· no variable or argument declarations are necessary.
Python is extensible: if you know how to program in C it is easy to add a new built-in function or module to the interpreter, either to perform critical operations at maximum speed, or to link Python programs to libraries that may only be available in binary form (such as a vendor-specific graphics library). Once you are really hooked, you can link the Python interpreter into an application written in C and use it as an extension or command language for that application.
By the way, the language is named after the BBC show “Monty Python’s Flying Circus” and has nothing to do with reptiles. Making references to Monty Python skits in documentation is not only allowed, it is encouraged!
Now that you are all excited about Python, you’ll want to examine it in some more detail. Since the best way to learn a language is to use it, the tutorial invites you to play with the Python interpreter as you read.
In the next chapter, the mechanics of using the interpreter are explained. This is rather mundane information, but essential for trying out the examples shown later.
The rest of the tutorial introduces various features of the Python language and system through examples, beginning with simple expressions, statements and data types, through functions and modules, and finally touching upon advanced concepts like exceptions and user-defined classes.