After nearly two years of writing a Python quick tutorial, it finally took shape. This series of articles includes the Python basics, the standard library, and the Django framework. The articles that cover the most important part of Python. This content spans far more than I expected, and more than any Python-related book I've ever seen. The reason for the initial writing, in addition to summary, but also to many Python books and tutorials feel dissatisfied, feel too obscure, and not comprehensive. Now, I'm quite sure, referring to my summary of Linux, the network, the algorithm, the reader can learn python in a short time and with depth in a background without foundation.
This one is also the end of the story. Be prepared to stop updating the Python quick tutorials for a long time and concentrate on other aspects. After all, one thing for a long time, there will be a lack of self breakthrough. Programming is a very innovative, very need to break through the work of the self. In one respect for a long time, they will feel rancid. In the Unknown computer field, there are many interesting techniques worth studying more deeply. On the other hand, Python is comfortable, which leads me to think of a problem, which is basically Python's idea. In this way, Python becomes my comfort zone. I'm too lazy to think how Java will solve what Scala will do, and how C will solve it. The space for growth is compressed very little. In order to be able to move forward, to break this comfort zone.
Thank you for reading these python articles. Your support is the greatest motivator I have come to now. Hopefully these technical articles will adorn your leisure. It would be best if we could have some concrete help.
Here's a post I'm responding to, "How do you learn Python by yourself", slightly modified to summarize:
I am a self-taught python. There are a number of hurdles, but also fun, from knowing nothing about Python to writing Python-related articles on blogs. Fun is the greatest motivator of self-study. Python is a dynamic language that is easy to write and powerful. With Python, you can achieve fairly powerful functionality in just a few lines. By writing some of their own small programs, quickly see the effect of finding problems, this is learning Python the most convenient place. In "hackers and painters", Paul also said that dynamic language can give hacker more painting of the pleasure. This is my heart.
Before you learn python, you can learn about Python's features and design concepts (a brief history of Python). At the beginning of the design, Python tried to find a balance between a complex, powerful C and a convenient, limited bash. Python's syntax is simple and easy to use, so some people use it as a scripting language. But Python is a lot more powerful than the normal scripting language. With good scalability, Python features a fairly comprehensive range of applications: Web servers, network crawlers, scientific computing, machine learning, game development ... Of course, there is no free lunch, there is no perfect language, python in order to achieve the above two points, deliberately sacrificed the speed of Python. If you're writing a high volume, computational program, Python may not be the best choice.
-----
The main content of Python can be divided into the following sections:
Process oriented. Includes basic expressions, if statements, loops, functions, and so on. If you have a foundation for any language, especially the C language, this is part of the minute to understand the Python rules. If you don't have a language base, it's recommended to use Python programming as a reference book. This book is a textbook introduction to the computer and does not require a programming basis.
Object oriented, including object-oriented basic concepts, classes, methods, attributes, inheritance, and so on. Python is an object-oriented language, "all objects". Object-oriented is difficult to avoid. Python's object-oriented mechanism is relatively loose, not as stringent as Java and C + +. The advantage is easy to learn, easy to maintain, the disadvantage is easy to make mistakes.
Application functions, including IO, data containers such as tables and dictionaries, built-in functions, modules, formatted strings, and so on. These are often found in other languages, and have a strong practicality.
Advanced syntax, context Manager, list derivation, functional programming, adorners, special methods, etc. These syntaxes are not necessary, and you can implement them using the syntax of the previous comparison. The main reason to learn these advanced grammars is that they are too convenient. For example, the list can be deduced a line of things to do, with the loop structure to several lines.
The best reference for learning Python is learning python, which is very comprehensive and full of dry goods. Although it is very thick, it is not difficult to read. Another is to refer to the official website tutorial python.org
Python is known as "Battery Included", meaning that functionality is already contained in the language. This confidence comes mainly from a fully functional standard library of Python. The standard library provides many functional modules, each of which is a functional interface, such as file management, operating system interaction, character processing, network interface, encoding encryption, and so on.
In the Python Standard library, you can see a list of standard library modules. This is also the best learning material for the standard library. If you want to find a book, I have only seen two books on the standard library:
Python Essential Reference
The Python Standard Library by Example
To tell the truth, these two are not very good standard library materials, and standard library reference books are really difficult to write. Because the standard library is just the interface to invoke functionality, the ultimate realization is Python and system interaction. This requires a strong system knowledge, such as file system knowledge, process management, HTTP principle, socket programming, database principles ... If all this knowledge is well prepared, then the standard library will not be very difficult to learn. However, the learning curve of these background knowledge is far steeper than python itself.
The same goes for deeper Python learning, which requires a lot of background knowledge, not just python itself. If you're interested in Python's scalability, you can try a lot of mixed programming. If you're interested in Python's compile and run mechanisms, you can dig into the depths of Python to see how the compiler does it. If you are interested in the application, you can learn a few more of your own third-party packages. Learning this time, spelling is the realm, there is no way to fix. Vast space, left to explore.
Basically, after learning the main content, Python still has to do the project to practice. There are a number of small exercise types of information, such as Python Cookbook. But the better way is to think about some of the scenarios and use Python to solve them. Like what:
Building a website
Make a web crawler
System Management
Python is full-featured, so don't worry about the problems you think Python can't solve (basically the problem that Python can't solve, and no other language is going to work). For example, I learn the power of multithreading, because the parallel to download a large number of files. Basically a project down, will use python several pieces of content, knowledge will be particularly consolidated.
Finally, as with any other knowledge of learning, notes and summaries are important. You can make some notes while looking at the reference books and reading the pages. After learning for a while, you can organize your notes into more structured reference cards (reference Card) or blog.