This article is mainly aimed at those who want to learn Python from scratch . This article is compiled by @Shijiangge ([email protected] QQ:499065469) based on the collection of Internet data. Thank you to the Internet and everyone for sharing. Thanks! This article will be continuously updated.
"How to use Google search engine well?" 》 Zhihu Q&A @ Cui Kai
"Top Ten Smart Google Search Skills" by-Xueying Lanfeng
"How to use Google well" by-Li Xiaolai
Recommended reading "The Wisdom of Questioning" by-Woodpecker Community
"The Wisdom of Questioning" must be read to the end!
Click to open the link to the official Python documentation. If your English is not good, don’t read it for now. You must definitely improve your English learning in the future ;).
I recommend "How to think like a computer scientist", which corresponds to the Chinese version of "Python Learning Notes - Pi Daqing", which is very suitable for starting from scratch.
Recommended ["Python Programming Practice"] (http://book.douban.com/subject/7059900/)
Recommend "Concise Python Tutorial"
Recommend "Learn Python The Hard Way"
Recommend "Python Basics Tutorial"
Recommended Python introductory tutorial-By Liao Xuefeng
Tutorial - Learn Python in 10 minutes
Recommended Requests source code reading
"Python Advanced" (Intermediate Python Chinese version)
Zhihu Q&A : What are the classic introductory books about Python?
V2EX Q&A : Liberal arts students want to learn Python
Python quick tutorial
MIT's open course "Introduction to Computer Science and Programming" is an open course offered by NetEase for beginners.
Course Introduction This course is suitable for students who have little or no programming experience . It is dedicated to making students understand the role of computers in solving problems and helping students, regardless of their majors , to be able to complete useful small programs. Goal with confidence.
Although I am not a Python expert, I have zero basic knowledge. Before that, I only knew software such as PS and PPT.
If your goal is to become a programmer, refer to the syllabus.
If you just want to learn programs, understand technology, and solve work problems, you can refer to my method:
Find a suitable introductory book, read it roughly once, cycle, judge, commonly used categories, and understand (skip if it is too difficult)
"Python Cookbook" is good for doing some simple exercises, comparing strings, reading dates, etc. (If it is too difficult and boring, skip it again. Maintaining interest is the most important thing. If you don't know it, you can learn it again later)
Join the Python discussion group with a friendly attitude and a smile (very important, so that the experts will patiently correct your wrong common sense). There are many small problems that have been tangled for a long time. The other party can provide you with ideas in one sentence, which really saves you a lot of time. Thank you very much for your patience in teaching me.
Solve your own computer problems. For example, when downloading an American TV series, I downloaded 2, 4, 5, and 8 episodes scatteredly, and there are 12 episodes in total. How do I find out which episodes are missing? Then the problem is decomposed, 1. Read all the downloaded file names, 2. Extract the numbers of the set, 3. Sort the numbers and compare them (1--12) to find the missing ones.
Always remember the purpose, not to be a programmer, but to solve problems.
For example, if you want to lazily capture web content, you can’t use urllib or request. Then you find that capturing content involves so many aspects (cookies, headers, SSL, url, javascript, etc.). Of course, you can listen to others’ advice and go back and study hard. , read from the beginning.
Or, instead of looking for efficiency, just for solutions, is it okay to open the web page in IE and save it as? IE has rendered all the results.
The question becomes: 1--Open the specified 10 web pages (one line of code will do). Want to save something more complicated? Use existing packages, such as PAM30 (mine is Python3), open IE directly, use the function outHTML to save as text, and then use the search function (str search will also work, re regular will also work) to find the data. Simple right? And the code is super short.
Stay interested and use the simplest way to solve the problem. Leave it to the experts to write about the underlying drivers and various exchanges. We use existing packages to complete.
Read the document patiently and practice reading it quickly. When you get a new package and find the functions you need, you need to read it quickly. This is not difficult. If you read the function name, you can probably guess what it does, and then look at the return value to judge whether it is what you need.
Write help files and study notes, and publish and share them. When you teach others, you are actually thinking about it yourself again.
I think learning programming is like learning English. Once you understand the high-frequency words (loops, judgments, commonly used packages, commonly used functions), you can assemble the software you want.
Then, http://stackoverflow.com and http://Google.com are great to use.
Then, keep at it.
Be sure to stay interested and skip anything that is too complicated. Just like primary school mathematics and primary school English, they all start from simple to more advanced.
The Internet is very flat. Countless international experts have written good books about Python, algorithms, computers, networks, or programmer thinking, or business thinking (Top of the Wave is a good book), etc., and there are also online open courses from famous international schools ( The Chinese and English subtitles have been translated, so it is not difficult to watch.) It talks about computers, networks, security, or Android systems. It has everything. As long as you can continue to be interested and learn little by little, it is not difficult.
All genius programmers were once children and returned to children's thinking to understand and learn. If you find something interesting, learn it first. If you don't understand it, leave it alone. If you encounter problems, you can learn it again. The effect will be better.
The only suggestion is, don't be too greedy, be patient and learn an elegant language before learning others. Although Javascript is very cool when it comes to special effects, or when asking a certain question, some experts suggest that it would be better to write in Ruby, etc., do not change the direction. It's like the old joke: "To learn recursion, you must first understand recursion." And then the endless loop continues. Keep learning one language well and then study others.
Even if you can learn the parts related to the Internet, databases, etc. of a language well, then learning other languages will be very quick.
The other thing is, use the same patience as learning English to learn computers. If you encounter words you don’t understand in English, copy them down and look them up.
In Python, when you see Http, look up the definition. When you see outHtml, look up the definition. Just like when you first learned English, don’t guess the meaning directly, because there is a difference between precise descriptive definitions and vague natural language. It is easy for newcomers to misunderstand things if they make blind guesses. Wiki and Google are very useful.
We assume that you are a junior programmer who only knows a little basic knowledge and hopes to use python for development. This document is written to meet the above goals.
outline
By following the tasks outlined in this document, you will be able to:
Familiar with the python language and the coding method of python. Familiar with the python library and know how to find the corresponding modules when encountering development tasks. Know how to find and obtain third-party python libraries to cope with development tasks. Learning steps
Install development environment
If you are under window, download pythonxy, install it, then run python to enter the python interpretation environment.
If you are under ubuntu, execute: sudo apt-get install python, then run python on the command line to enter the python interpretation environment.
learning methods
As a mature developer, my habitual way of learning new things (assuming it's pyqt) is:
Directly use Google to search the official website of pyqt. Follow the instructions on the official website to download pyqt. (If you are using Ubuntu, check if there is a new enough version in the software library.) During the download process, start reading the tutorial on the official website. While reading Tutorial, follow the tutorial to use pyqt. If you find that the tutorial is not comprehensive enough, search on Google to see if there are corresponding teaching books. After studying the examples, develop a toy program to test whether you need to use the functions. Start learning python
I suggest that you follow the learning process as above. First, read the official Python documentation:
http://docs.python.org/tutorial/index.html
Then do the questions on the website http://www.pythonchallenge.com/.
If you are stuck at a certain level for too long, you can look at the answer (google python challenge answer), and after you finish it, see the difference between other people's coding methods and your own.
small project
After finishing it, you will find that you are familiar with basic python development. Then do some small projects. Here are some topics, pick the ones you are interested in and do them.
FAQ
Q: If you encounter a problem, where can you go for help?
A: Just go to http://groups.google.com/group/python-cn (you need to circumvent the firewall) or http://stackoverflow.com to ask questions.
Q: How to find a function of python?
A: See the official documentation. http://docs.python.org/library/index.html
Q: How to use python to complete a task (such as writing a website)?
A: google: python for website writing, or google: python web development.
Stage 1 : Seniors lead the way in. The first time I saw it was a senior who showed me the Python code, because I first learned the Java language. When I saw Python for the first time, the senior said, "Python is object-oriented" and then printed a few sentences. code. But I can't see where it is "object-oriented". The senior said "In Python, everything is an object", and I said with some understanding: "It turns out that what I regard as an object is object-oriented", haha.
Stage 2 : Start reading "Dive into Python", "Leaning python", and "Python Doc". Because I have a lot of language learning experience, I quickly completed the preliminary grammar and usage learning. Features that are too complex can be gradually mastered through use.
Stage 3 : Start using Python to do some of your daily work. For example, Python search files, Python batch processing, etc., the most commonly used are the re module and socket related modules. I wrote a lot of examples to make myself more fond of Python and more familiar with it. The most read guide at this time is the "Python Doc" guide. Whether it is language reference, library reference, or Demo reference, there is a lot of usable content, and the content quality is very high and comparable to JDK.
Stage 4 : Production starts. Start using Django, Flask, and Tornado to develop some web applications, write some toolkits for daily use, etc. Gradually improve design capabilities and overall code management capabilities.
Stage 5 : More reasonably allocate the parts that each of the three languages of C, Java, and Python is good at. Use the right language in the right place. Although one language can sometimes solve everything, it is most efficient to use the language you are good at to solve the right problems. This is also the help and understanding that the concept of "Python's simplicity brings to me."
PS: Some of the main methods in the process:
Read a book. The basis of learning.
Practice locally. Programming still requires practice to gain true knowledge.
Information query. Pay more attention to google, stackoverflow, etc.
comminicate. Python groups and forums on various forums. The first CU I went to was JavaEye, but it seems like fewer people go there now. Google group must be subscribed.
Study + practice + summary, the magic weapon for mastering language.
After reading so much information, you haven’t started coding yet?
Well, the best article is "The Two Biggest Mistakes I Made in Learning Programming" click to open the link
Just do it. Let’s start typing code.
Note: This article is collected and compiled by @Shijiangge ([email protected]) based on Internet data.
Python technology blog, recruitment, open source software, Python Chinese website navigation
How to solve python problems? python help dir stackoverflow docs google
Online video teaching (English) codecademy
EnglishPython for beginners
English How do I learn Python from zero to web development? (Various e-book recommendations) Click to open the link
Python Applications and Practices What is Python? Who is using it? Related tools? Author: @武青
Learning Python modules is equivalent to translating official website documents
For people with experience in other languages, English: Learn X in Y minutes Chinese translation Learn Python in Y minutes (translation)
PyCoder's Weekly Chinese translation description: The article quality is very high
PEP 20 (Zen of Python) Example: code_stype
The pain of Unicode must read
A must-read for analysis and understanding of Chinese Unicode encoding issues in Python 2 and Sublime Text
Compilation and translation of Python related answers on stackoverflow
Python Language Summary-Beginner, Intermediate and Advanced Tutorial Author: @Crifan Li
Python Guide Python Best Practices (English)
Python Best Practice Guide (Chinese) Best practice manual on Python installation, configuration, and daily use.
Python Best Practice Guide 2018 Best practices for daily use of Python, knowledge that advanced Python developers must know
"Coder Weekly" selection of useful information (Python articles) Summary of selections
Python 3 Module of the Week Python standard library usage
Python - From novice to master in 100 days From novice to master in 100 days
Python and Diango learning materials, books, articles, and practical projects
What the f*ck Python!
https://github.com/leisurelicht/wtfpython-cn
Zhihu: How to get started learning Python crawler
Python crawler learning tutorial series @Cui Qingcai series tutorials, entry, practical, introduction to crawler tools, and advanced
Python simulates logging into Sina Weibo (using RSA encryption and Cookies files)
http://uliweb.clkg.org/tutorial/view_chapter/240
A simple distributed Sina Weibo crawler
Summary of some techniques for using python crawlers to crawl websites
Summary of some techniques for using python crawlers to crawl websites: Advanced
Web crawler series
Under Windows system, Python related packages Windows Binaries for Python Extension Packages