这是一篇 Python 入门指南,针对那些没有任何编程经验,从零开始学习 Python 的同学。不管你学习的出发点是兴趣驱动、拓展思维,还是工作需要、想要转行,都可以此文作为一个参考。

在这个信息爆炸的时代,以 “Python入门” 为关键字搜索出的结果成千上万。不少小白选手难免会东一榔头西一棒槌,最终看了很多文章,却仍没跨过新手那道门槛。

结合自身的学习经验以及与很多自学者的沟通了解,我们整理出一条可操作性较强的自学路线,同时收集了多种形式的 Python 优质学习资源,供诸位尚未入门或刚入门不久的同学参考。

0. 心态准备

编程是一门技术,也可说是一门手艺。如同书法、绘画、乐器、雕刻等,技艺纯熟的背后肯定付出了长时间的反复练习。编程的世界浩瀚无边,所以请保持一颗敬畏的心态去学习,认真对待写下的每一行代码,甚至每一个字符。收拾好自己的心态,向着编程的世界出发。

1. 入门阶段

第一步至关重要,是关系到初学者从入门到精通还是从入门到放弃。选一条合适的入门道路,并坚持下去。

1.1 配置 Python 学习环境

Python2 还是 Python3?

很多人都在纠结入门应该学 Python2 还是 Python3。这其实不是个问题。我从没听过某个人是 Python2 程序员或 Python3 程序员。二者只是程序不兼容,思想上并无大差别,语法变动也并不多。选择任何一个入手,都没有大影响。

如果你仍然无法抉择,那请选择 Python3,毕竟这是未来的趋势,参考知乎回答
Python2 还是 Python3? 应该学习最新版本的 Python 3 还是旧版本的 Python 2?

编辑器该如何选?

我推荐 pycharm 社区版,配置简单、功能强大、使用起来省时省心,对初学者友好。并且还是完全免费的!

社区版地址:PyCharm

其他可以尝试的编辑器:

  • idle: Python 自带编辑器。如果只是想尽快写出几行代码来,这是最简便的方式。
  • vs code: Visual Studio Code - Code Editing. Redefined
  • atom: A hackable text editor for the 21st Century
  • SublimeText: Sublime Text - Download
  • notepad++: Notepad++ Home

为了让初学者集中更多的精力在写代码这件事情上,所以我们就不推荐 vim 和 Emacs 了。

操作系统?

Python 支持现有所有主流操作平台,不管是 windows 还是 mac 还是 linux,都能很好的运行 Python。并且后两者都默认自带 Python 环境。

1.2 入门教程

《Crossin的编程教室 - Python 入门》

Crossin的编程教室 - Python入门

自认为算得上是最浅显易懂的入门教程,很适合没有任何编程基础的人上手。

74篇图文教程,从最简单的 Python 安装到基本语法、数据结构、函数、文件操作、网络请求、面向对象等逐步深入。

对于如何加深对一个知识点的印象,最好的办法就是自己写代码实现一遍。如果还是不懂,那就再来一遍。所以无论你使用什么教程,都请将其中的示例代码全部在电脑上输入并运行,learning by doing!

配套练习

Crossin的编程教室 - 基础练习

Crossin的编程教室 - 在线练习

课外练习

《笨办法学Python》

序言 - [ 笨办法学Python ] - 看云

这是本很有名的 Python 书籍,但并不适合纯零基础自学。因为其中重实践但不解释,新手很容易看得一头雾水。作为学习同时的辅助倒更合适。

其他推荐教程

《父与子的编程之旅》 又名 《与孩子一起学编程》

这也是一本非常适合零基础的 Python 入门书籍。喜欢阅读纸质书的同学可以买一本,不少在线书店有售。

《简明 Python 教程》

在线阅读:简明 Python 教程

这是一本言简意赅的 Python 入门教程,简单直白,没有废话。适合有过其他语言基础的人快速了解 Python 语法。

以上是我们推荐的学习材料,主要偏重没有太多编程基础的纯新手。其他也有一些不错的资源,可供不同需求的学习者使用:

在线文字教程:

  • 廖雪峰的Python教程

Python教程

廖先生的教程涵盖了 Python 知识的方方面面,内容更加系统,有一定深度,有一定基础之后学习会有更多的收获。

其他入门书籍:

  • Head First Python
  • Dive Into Python
  • Python 核心编程
  • 深入理解 Python
  • Python 标准库
  • Python 编程指南

我们搜集了一些网上的电子书版本,放在了网盘里:

​https://pan.baidu.com/s/1ECLky

交互式学习网站:

  • codecademy

Python

  • codeschool

Learn to code by doing | Code School

codecademy 与 codeschool 这两个通过互联网学习 Python 的网站均备受好评。不妨去体验一下。

在线视频课程:

  • 在线教育网站(Coursera网易云edx课堂腾讯课堂等)有哪些值得推荐的 Python 教程?

在线教育网站(Coursera、网易云课堂、腾讯课堂等)有哪些值得推荐的 Python 课程?

2. 提升阶段

完成入门阶段的基础学习之后,常会陷入一个瓶颈期,通过看教程很难进一步提高编程水平。这时候,需要的是练习,大量的练习。

可以从书上的例程开始写,再写小程序片段,然后写完整的项目。

我们收集了一些练习题和网站。可根据自己阶段,选择适合的练习去做。建议最好挑选一两个系列重点完成,而不是到处浅尝辄止。

  • Crossin的编程教室 - 每周一坑

编程教室的公众号每周会放出一道题目供练习,并在下一周讲解。欢迎关注微信公众号,和大家一起提交解答。

往期题目:

【每周一坑】三门问题

【每周一坑】双色球选号器

【每周一坑】统计英文小说词频

【每周一坑】特殊回文数

  • Crossin的编程教室 - 编程实例

Crossin的编程教室 - 编程实例

相对于编程教室基础练习着重于单一知识点,编程实例更注重对知识的融会贯通。

  • 实验楼 提升编程水平从做项目开始

实验楼 - 在线做实验,高效学编程

  • hackerrank Python 部分难度循序渐进,符合学习曲线

https://www.hackerrank.com/domains/python/py-introduction

  • codewar 社区型编程练习网站,内容由易到难

https://www.codewars.com/?language=python

  • leetcode 为编程面试准备,对初学者稍难

LeetCode

  • 牛客网 提供 BAT 等大厂笔试题目

牛客网-专业IT笔试面试备考平台,最全C++JAVA前端求职题库,全面提升IT编程能力

  • codecombat 一边游戏一边编程

CodeCombat中国 - 中国爱好者的 CodeCombat!在游戏中学习编程

  • projecteuler 纯粹的编程练习网站

https://projecteuler.net/archives

  • 菜鸟教程100例 基于 py2 的基础练习

http://www.runoob.com/python/python-100-examples.html

  • 知乎:Python3.x基础学习资料整理

https://zhuanlan.zhihu.com/p/24249743

  • 知乎:Python学习路径及练手项目合集

https://zhuanlan.zhihu.com/p/23561159

  • 知乎:Python 的练手项目有哪些值得推荐?

https://www.zhihu.com/question/29372574

3. 遇到问题怎么办?

学习的过程中或多或少都会有各种问题出现,不要试着逃避,真的勇士敢于直面惨淡的 BUG。

第一步肯定是利用好搜索引擎,怎么用也是一门技术活:

编程初学者如何使用搜索引擎

第二步,求助于各大同性交友网站(大雾):

StackOverflow

http://stackoverflow.com/

v2ex

https://www.v2ex.com/

segmentfault

https://segmentfault.com/

4. 过来人的建议

在初学编程的过程中,你会有各种各样的疑惑,你会遇到各种各样的坑。这时,前人的经验尤为重要,我们整理了一些知乎问题供参考:

你是如何自学Python的?

https://www.zhihu.com/question/20702054

怎么用最短时间高效而踏实地学习 Python?

https://www.zhihu.com/question/28530832

对于编程零基础,第一个语言是 Python 的人有什么建议?

https://www.zhihu.com/question/22785587

Python 编程,应该养成哪些好的习惯?

https://www.zhihu.com/question/28966220

如何处理 Python 入门难以进步的现象?

https://www.zhihu.com/question/27969262

5. 写在最后

经过第一步和第二步训练,相信一般的小程序都难不倒你了,你已经在编程的世界里已经迈出了关键的一步。接下来就可以去挑战具体的项目了,爬虫、web开发、数据分析、机器学习等等丰富的世界已经向你敞开,选择一个方向重新出发吧!

记住:在编程的道路上,没有捷径。

公众号(Crossin的编程教室)里回复 新手,获取脱水版资源链接汇总页面。

教程及练习将持续更新,欢迎关注我们。

其他文章及回答:

  • Crossin:如何用100行Python代码做出魔性声控游戏“八分音符酱”
  • 学习编程的过程中可能会走哪些弯路,有哪些经验可以参考?
  • 你是如何自学 Python 的?

Crossin的编程教室

  • 微信公众号ID:crossincode
  • 网站:crossincode.com

Python学习入门1:Python 新手入门引导相关推荐

  1. Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python

    Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python? 人生苦短,我用Python!!!短短几个字,现在在各大学习类平台随处 ...

  2. Python学习教程(Python学习路线):Day14A-网络编程入门

    Python学习教程(Python学习路线):网络编程入门 计算机网络基础 计算机网络是独立自主的计算机互联而成的系统的总称,组建计算机网络最主要的目的是实现多台计算机之间的通信和资源共享.今天计算机 ...

  3. Python学习教程(Python学习路线):第12天—正则表达式

    Python学习教程(Python学习路线):正则表达式相关知识 在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要,正则表达式就是用于描述这些规则的工具,换句话说正则表达式是 ...

  4. Python学习教程(Python学习路线):Day13-进程和线程

    Python学习教程(Python学习路线):进程和线程 今天我们使用的计算机早已进入多CPU或多核时代,而我们使用的操作系统都是支持"多任务"的操作系统,这使得我们可以同时运行多 ...

  5. 2019最新Python学习教程(Python视频教程_Python学习教程_Python学习路线):你心目中编程界的MVP是谁?

    2019最新Python学习教程(Python视频教程_Python学习教程_Python学习路线):你心目中编程界的MVP是谁?编程界的王者是渐落寞的Java还是大火的Python? 是不是你们也喜 ...

  6. python学习一(python与pip工具下载与安装)

    python学习一(python与pip工具下载与安装)  一 Python下载  二 安装Python  三 安装 pip   3.1 采用cd命令进入到Scripts 目录下面   3.2 输入命 ...

  7. Python学习教程(Python学习视频_Python学些路线):Day05 总结和练习

    Python学习教程(Python学习视频_Python学些路线):总结和练习 练习清单 寻找"水仙花数". 寻找"完美数". "百钱百鸡" ...

  8. Python学习教程(Python学习路线):Python面试100题(二)

    Python学习教程(Python学习路线):面试题接着给大家整理! 16.<div class="nam">中国</div>,用正则匹配出标签里面的内容( ...

  9. Python学习之解决python下载第三方依赖速度慢的问题

    Python学习之解决python下载第三方依赖速度慢的问题 参考文章: (1)Python学习之解决python下载第三方依赖速度慢的问题 (2)https://www.cnblogs.com/su ...

  10. Python学习教程:Python爬虫抓取技术的门道

    Python学习教程:Python爬虫抓取技术的门道 web是一个开放的平台,这也奠定了web从90年代初诞生直至今日将近30年来蓬勃的发展.然而,正所谓成也萧何败也萧何,开放的特性.搜索引擎以及简单 ...

最新文章

  1. LeetCode简单题之学生分数的最小差值
  2. python gui界面设置数据储存在哪里_我整理的一些常用Python库!让你快速记住这些库的用法!建议收藏...
  3. MyBatis Like
  4. 一元操作符和使用Number()方法的区别
  5. 【深度学习】Squeeze-and-Excitation (SE) 模块优势解读
  6. POJ 3104 Drying【二分搜索】最大化最小值问题
  7. 【C语言进阶深度学习记录】三十五 程序中的堆、栈以及静态存储区(数据区)
  8. 矩阵 II : 线性组的线性相关性
  9. oracle杀死进程时权限不足_如何解决Oracle数据库在迁移过程中的权限不足问题
  10. docker 部署了一个网站玩
  11. java根据所给的根目录获取底下所有文件夹结构
  12. 人脸识别之数据库存取
  13. 电影《无双》中的管理知识
  14. 【漆天编程】最牛逼的均线交叉指标,做出了EA历史数据测试器的效果
  15. 10个开源电子商务平台
  16. Activiti6+SpringBoot---会签功能学习-1
  17. 微信直播怎么弄?知识干货都在这里了
  18. 移民去欧洲,选哪个国家好呢?
  19. 笔记本外接显示器后分辨率无法调回到正常模式
  20. 流程引擎之发展史及对比总结

热门文章

  1. kali 无法使用ifconfig等常用命令
  2. log4j+mybatis打印日志文件
  3. Maven常用的命令
  4. VS2015 新Web项目(C#6)出现CS1617错误的解决
  5. php cookie赋值使用
  6. ubuntu server 14.10 安装 nodejs
  7. C++ 操作符new和delete
  8. 3: Java虚拟机体系结构
  9. 一天一小步_我学C#入门精典_第八天
  10. 用了Python,老板再也不用担心我写不了CUDA了!