如何自学 Python
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何自学 Python相关的知识,希望对你有一定的参考价值。
其实python非常适合初学者入门。相比较其他不少主流编程语言,有更好的可读性,因此上手相对容易。自带的各种模块加上丰富的第三方模块,免去了很多“重复造轮子”的工作,可以更快地写出东西。
我是真正零基础开始学Python的,从一开始的一窍不通,到3个月后成功搭建了一个动态网站(没有用任何框架)。相比于计算机大牛,我更加知道一个小白将会遇到什么坑,遇到哪些难点。我把我的学习过程写在下面,并附上在每个阶段的学习资料,希望对零基础的Python学习
想学习编程但不知如何开始的朋友。回答这类问题的人往往只是列出书单资源然后给出一个大致的方向。有些朋友一开始就扎入了理论学习的汪洋大海,从苦读类似《算法导论》开始,能够坚持读下来的寥寥无几,学习的积极性也被不断的挫败感消磨的所剩无几。可以加Python技术直播裙【三零四零五零七九九】 群里大佬生动的讲解可以让你思路更清晰,互动直播,遇到问题里面有大佬解答指导!
一直以来,编程对我而言是一种「黑魔法」般的存在。今年阿里月饼门,当很多人都参与到是非之争的时候,我更加着迷于程序员区区几行代码的脚本所展现出的威力,对于外行而言,这是超乎他们想象之外的某种能力——为什么我守在电脑面前盯着秒针然后拼命点击鼠标都不一定能抢到的礼物,程序员只需要提前花5分钟写3行代码就轻松搞定?
所以,我的心底深处一直都想变成这样的一位魔法师。今年的8月,刚好工作上想要开发一个基于微信的英语学习网站,借此机会,我决定好好学习一下编程。在此之前,我所有关于程序的知识仅仅来源于两部分,一是本科时期的C语言必修课,现在已经忘的一干二净,不过好歹我从中明白编程是怎么回事;第二部分是大概两年前由于工作关系学的一些Python,不过只是皮毛,现在忘的七七八八。
简单说,我的目标是建立一个网站,不过这个网站是动态的,也就是说它能识别谁登陆,然后对不同的人显示不同的内容。而当时的现实是,我完全不明白网页是如何显示出来的?譬如每个人登陆知乎的时候看到的是定制化的页面,后台是如何基于每个ID来组织出不同的页面的?所有我们看到的问题,回答,参与的评论在背后的服务器上是以一种什么样的形式存在的?又比如为什么有些页面只能在微信端打开,在电脑上就会出错?(不知道你有没有发现这一点)
当时我的心中充满了无数个类似的问号?当然如果你也是小白,一定有着同样的疑问。
好处是一开始就明确了学习的目的:Web建站。所以我的学习方案基本就是通过做项目学习,哪里不懂就解决哪里,边做边学习,不断推进。另外,由于知道很多成功的网站在用Python做服务器开发,比如知乎,所以我就自然选择了Python。
于是我就开始了我充满着挫败感和成就感的编程之路……
从8月到12月的四个月里,除去本来的工作,为了学习质量,我会保证平均每天4个小时的学习时间,周末也不例外。另外,所有的文档,问答都尽量看英文的,这可以帮你剩下大量的时间。12月13日,我做的网站上线了,3天时间大概有5000人访问了这个网站,我有时在后台看着日志,不免有些心潮喷涌,我想把自己的经验写下来,希望对于那些有心学习编程但无从下手的朋友提供一些帮助和鼓励。
现在回头看,我认为这一段时间的造轮子是提升编程能力最快的时候。比如为了写ORM,就必须去花很多时间学习SQL,去了解Python里面的metaclass,而如果用一个现成的框架,我很有可能偷懒不去关注某些细节。而不出问题还好,一旦出问题,我就只能跪。另外,造轮子迫使我在开始的时候就构思整个框架,因为我必须尽可能的考虑到所有的情况,于是就会不断的强迫自己完善知识体系,和别人的代码作对比从而改进自己的,这个过程充满了无尽的挫败感,但是得来的成就和快乐也是无可比拟的。
关于自学python
个人最大3点经验
1. 找一本浅显易懂,例程比较好的教程,从头到尾看下去。
不要看很多本,专注于一本。把里面的例程都手打一遍,搞懂为什么。我当时看的是《简明python教程》,不过这本书不是非常适合零基础初学者。
2. 去找一个实际项目练手。
我当时是因为要做一个网站,不得已要学python。这种条件下的效果比你平时学一门新语言要好很多。所以最好是要有真实的项目做。可以找几个同学一起做个网站之类。注意,真实项目不一定非要是商业项目,你写一个只是自己会用的博客网站也是真实项目,关键是要核心功能完整。
3.最好能找到一个已经会python的人。问他一点学习规划的建议(上知乎也是个途径),然后在遇到卡壳的地方找他指点。
这样会事半功倍。但是,要学会搜索,学会如何更好地提问。没人愿意帮你写作业或是回答“一搜便知”的问题。
然而,别人的经验未必能完全复制。比如我没有说的是,在自学python之前,我已在学校系统学习过其他的编程语言。
对于完全没有编程经验的初学者,在学习python的时候,面对的不仅仅是python这门语言,还需要面临“编程”的一些普遍问题,比如:
· 从零开始,不知道从何入手,找了本编程教材发现第二章开始就看不懂了
· 缺少计算机基础知识,被一些教程略过的“常识性”问题卡住
· 遇到问题不知道怎么寻找解决方案
· 看懂语法之后不知道拿来做什么,学完一阵子就又忘了
· 缺少数据结构、设计模式等编程基础知识,只能写出小的程序片段
所以除了前面说的3点经验,
给编程初学者的额外建议
1、首先要有信心。虽然可能你看了几个小时也没在屏幕上打出一个三角形,或者压根儿就没能把程序运行起来。但相信我,几乎所有程序员一开始都是这么折腾过来的。
2、选择合适的教程。有些书很经典,但未必适合你,可能你写了上万行代码之后再看它会比较好。
3、写代码,然后写更多的代码。光看教程,编不出程序。从书上的例程开始写,再写小程序片段,然后写完整的项目。
4、除了学习编程语言,也兼顾补一点计算机基础,和英语。
5、不但要学写代码,还要学会看代码,更要会调试代码。读懂你自己程序的报错信息。再去找些github上的程序,读懂别人的代码。
6、学会查官方文档,用好搜索引擎和开发者社区。
参考技术A很多人都在问Python学习步骤应该如何安排?多长时间可以达到精通呢?我是真正零基础开始学Python的,从一开始的一窍不通,到3个月后成功搭建了一个动态网站(没有用任何框架)。相比于计算机大牛,我更加知道一个小白将会遇到什么坑,遇到哪些难点。我把我的学习过程写在下面,并附上在每个阶段的学习资料,希望对零基础的Python学习者有所帮助。
想学习编程但不知如何开始的朋友。回答这类问题的人往往只是列出书单资源然后给出一个大致的方向。有些朋友一开始就扎入了理论学习的汪洋大海,从苦读类似《算法导论》开始,能够坚持读下来的寥寥无几,学习的积极性也被不断的挫败感消磨的所剩无几。
一直以来,编程对我而言是一种「黑魔法」般的存在。今年阿里月饼门,当很多人都参与到是非之争的时候,我更加着迷于程序员区区几行代码的脚本所展现出的威力,对于外行而言,这是超乎他们想象之外的某种能力——为什么我守在电脑面前盯着秒针然后拼命点击鼠标都不一定能抢到的礼物,程序员只需要提前花5分钟写3行代码就轻松搞定?如果你也是学习Python或者说想转行这方面的你也可以关注下V❤工宗号:程序员大牛,获取些这方面的学习路线和入门教程!
所以,我的心底深处一直都想变成这样的一位魔法师。今年的8月,刚好工作上想要开发一个基于微信的英语学习网站,借此机会,我决定好好学习一下编程。在此之前,我所有关于程序的知识仅仅来源于两部分,一是本科时期的C语言必修课,现在已经忘的一干二净,不过好歹我从中明白编程是怎么回事;第二部分是大概两年前由于工作关系学的一些Python,不过只是皮毛,现在忘的七七八八。
简单说,我的目标是建立一个网站,不过这个网站是动态的,也就是说它能识别谁登陆,然后对不同的人显示不同的内容。而当时的现实是,我完全不明白网页是如何显示出来的?譬如每个人登陆知乎的时候看到的是定制化的页面,后台是如何基于每个ID来组织出不同的页面的?所有我们看到的问题,回答,参与的评论在背后的服务器上是以一种什么样的形式存在的?又比如为什么有些页面只能在微信端打开,在电脑上就会出错?(不知道你有没有发现这一点)
当时我的心中充满了无数个类似的问号?当然如果你也是小白,一定有着同样的疑问。
好处是一开始就明确了学习的目的:Web建站。所以我的学习方案基本就是通过做项目学习,哪里不懂就解决哪里,边做边学习,不断推进。另外,由于知道很多成功的网站在用Python做服务器开发,比如知乎,所以我就自然选择了Python。
于是我就开始了我充满着挫败感和成就感的编程之路……
从8月到12月的四个月里,除去本来的工作,为了学习质量,我会保证平均每天4个小时的学习时间,周末也不例外。另外,所有的文档,问答都尽量看英文的,这可以帮你剩下大量的时间。12月13日,我做的网站上线了,3天时间大概有5000人访问了这个网站,我有时在后台看着日志,不免有些心潮喷涌,我想把自己的经验写下来,希望对于那些有心学习编程但无从下手的朋友提供一些帮助和鼓励。
现在回头看,我认为这一段时间的造轮子是提升编程能力最快的时候。比如为了写ORM,就必须去花很多时间学习SQL,去了解Python里面的metaclass,而如果用一个现成的框架,我很有可能偷懒不去关注某些细节。而不出问题还好,一旦出问题,我就只能跪。另外,造轮子迫使我在开始的时候就构思整个框架,因为我必须尽可能的考虑到所有的情况,于是就会不断的强迫自己完善知识体系,和别人的代码作对比从而改进自己的,这个过程充满了无尽的挫败感,但是得来的成就和快乐也是无可比拟的。
学会Python需要多长时间?
如果是自学,从零基础开始学习Python的话,依照每个人理解能力的不同,大致上需要半年到一年半左右的时间。
当然,如果有其它编程语言的经验,入门还是非常快的,大概需要2~3个月可以对上手Python语言编写一些简单的应用。
无论是新手还是有一定基础的朋友,有一个有经验的人带着自己学习,或者参加Python培训课程,都会1个月左右入门,3个月左右对Python有一个全面系统的了解,达到自己动手编程解决问题的能力。
精通Python需要多长时间?
任何知识都是基础入门比较快,达到精通的程序是需要时日的,这是一个逐渐激烈的过程。
精通任何一门编程语言,都需要通过大量的实践来积累经验,解决遇到的各种疑难问题,看别人的源码,分享自己的分码的这个过程,才能够精通Python的方方面面。从编程的一开始,就应该不断的动手去编写代码,不停的去实践,不停的去修改,不停的总结经验,最终才能熟能生巧,达到精通。
一个对Python程序能算的上精通的程序员,对同样一个问题,他知道很多种解决问题的方法,并能从中选择最有效率的方法!
参考技术B很多朋友都是零基础,没有过编程的经验或者一知半解,在选择编程语言的时候面临着众多选择,不知道哪种语言才是适合自己去深入学习的。软件视频资料加扣扣一六二二中间四七九最后四三五免费分享一起进步。
现在信息更新的非常快速,又迎来了大数据的时代, 各行各业如果不与时俱进,都将面临优胜劣汰,知识是不断的更新的,只有一技之长,才能立于不败之地。
学习Python编程语言,是大家走入编程世界的最理想选择,在初期入门阶段就可以自己动手做一些实用的小项目,这样会极大的增进我们学习编程的 热情。
一、老生常谈-学习准备
学会提前准备是一切好的开始,学习语言更是如此。兴趣是最好的老师,学习爬虫技术,可以给自己定个目标,比如为了妹纸,爬取时尚网站的数据信息,打包给那个她······
基础知识必须掌握,数据是从哪里来的?这些基础到不行的知识点,请自行搜索!你还得掌握:
·html,了解网页的结构,内容等,帮助后续的数据爬取。
·Python
因为比较简单,零基础可以听一些大牛的博客文章,或者听别人是怎么说
python玩转自动化测试,这个点有基础的同学,可以略过哈~
·TCP/IP协议,HTTP协议
了解在网络请求和网络传输上的基本原理,帮助今后写爬虫的时候理解爬虫的逻辑。
二、爬取整个网站的构思
当用户在浏览网页时,会看图片。
点击网址看到的图片,是用户输入网址-DNS服务器-服务器主机-服务器请求-服务器解析-发送浏览器HTML、JS、CSS-浏览器解析-解析图片
爬虫需要爬取,有HTML代码构成的网页,然后获取图片和文字!
三、环境配置
环境配置总是最重要的一个环境,做过测试的都知道。python也一样,需要掌握几款好用的IDE,我们来看看常用的几个:
1、Notepad++,简单,但是提示功能不强
2、PyCharm,用于一般IDE具备的功能,比如,调试、语法高亮、代码跳转、等等,同时可用于Django开发,支持Google App Engine,更酷的是,PyCharm支持IronPython!
好的开发工具是一切工作完成的前提。
参考技术C 其实python非常适合初学者入门。相比较其他不少主流编程语言,有更好的可读性,因此上手相对容易。自带的各种模块加上丰富的第三方模块,免去了很多“重复造轮子”的工作,可以更快地写出东西。配置开发环境也不是很复杂,mac和linux都内置了python。另外据我所知,不少学校也开始使用python来教授程序设计课程(比如本人的母校)。我就是完全通过网上资源自学python的。
从在校时候用python接活赚零花钱,到在创业公司用python开发商业网站和游戏后台。所有遇到的问题,几乎都可以从互联网上的公开资源找到答案。
关于自学python,个人最大的3点经验:
找一本浅显易懂,例程比较好的教程,从头到尾看下去。不要看很多本,专注于一本。把里面的例程都手打一遍,搞懂为什么。我当时看的是《简明python教程》,不过这本书不是非常适合零基础初学者。
去找一个实际项目练手。我当时是因为要做一个网站,不得已要学python。这种条件下的效果比你平时学一门新语言要好很多。所以最好是要有真实的项目做。可以找几个同学一起做个网站之类。注意,真实项目不一定非要是商业项目,你写一个只是自己会用的博客网站也是真实项目,关键是要核心功能完整。
最好能找到一个已经会python的人。问他一点学习规划的建议(上知乎也是个途径),然后在遇到卡壳的地方找他指点。这样会事半功倍。但是,要学会搜索,学会如何更好地提问。没人愿意帮你写作业或是回答“一搜便知”的问题。
然而,别人的经验未必能完全复制。比如我没有说的是,在自学python之前,我已在学校系统学习过其他的编程语言。
对于完全没有编程经验的初学者,在学习python的时候,面对的不仅仅是python这门语言,还需要面临“编程”的一些普遍问题,比如:
从零开始,不知道从何入手,找了本编程教材发现第二章开始就看不懂了
缺少计算机基础知识,被一些教程略过的“常识性”问题卡住
遇到问题不知道怎么寻找解决方案
看懂语法之后不知道拿来做什么,学完一阵子就又忘了
缺少数据结构、设计模式等编程基础知识,只能写出小的程序片段
所以除了前面说的3点经验,给初学编程者的额外建议:
首先要有信心。虽然可能你看了几个小时也没在屏幕上打出一个三角形,或者压根儿就没能把程序运行起来。但相信我,几乎所有程序员一开始都是这么折腾过来的。
选择合适的教程。有些书很经典,但未必适合你,可能你写了上万行代码之后再看它会比较好。
写代码,然后写更多的代码。光看教程,编不出程序。从书上的例程开始写,再写小程序片段,然后写完整的项目。
除了学习编程语言,也兼顾补一点计算机基础,和英语。
不但要学写代码,还要学会看代码,更要会调试代码。读懂你自己程序的报错信息。再去找些github上的程序,读懂别人的代码。
学会查官方文档,用好搜索引擎和开发者社区。 参考技术D
现在编程这么火,有多少人想学习?又有多少小伙伴们瞄准了人工智能Python语言的学习,今天我把自己自学Python的经历分享给大家,希望对大家有帮助。
学习准备:
刚开始我也看了一些自学的教程,感觉都是东拼西凑,没有一个系统的学习,知道我后来认识了一位Python工程师,他给我说可以看一下黑马程序员视频库的Python入门基础教程,小白都可以看得懂的。至此开始了我学习的道路!
教程分为了三个阶段,
第一阶段(1-3天):
介绍不同的操作系统,对操作系统的认识、发展。及Linux系统的文件目录结构让大家对Linux系统有一个简单的认识,同时知道为什么要学习Linux命令。
知识点:
1.文件和目录命令:ls,cd,touch,mkdir,rm
2.拷贝和移动命令:tree,cp,mv
3.文件内容命令:cat,more,grep
4.远程管理命令:ifconfig,ping,SSH的工作方式简介以及ssh命令
5.用户权限及用户管理命令:chmod,chgrp,useradd,passwd,userdel
6.软件安装及压缩命令:apt简介及命令,tar,gzip压缩命令,bzip2压缩命令
7. vim的基本使用
第二阶段(4-10天)
进入Python这门语言的学习,首先了解Python语言的起源,Python语言的设计目标,Python语言的设计哲学,Python语言的优缺点和面向对象的基本概念,以及Python语言的执行方式,还有Python集成开发环境PyCharm的使用为我们接下来的学习做铺垫。
int,string,float三种简单的变量类型,
变量间的计算,
变量的输入输出,
if判断语句,
while循环语句,
for循环语句,
break和continue的使用,
函数的基本使用,
模块的使用,
列表,
元组,
字典三种高级变量,
字符串的常用操作。
之后又实际操作,名片管理系统的案例,通过这个案例巩固学习的知识点。
第三阶段(11-13天)
有类和对象的基本概念,
dir函数,
self的作用,
初始化方法__init__,
内置函数__str__,__del__,
单继承,
方法重写,
私有属性和方法,
多继承,多态,类属性,静态方法。
单例模式,异常的捕获,异常的抛出,
from import局部导入,from import导入同名工具, from import导入所有工具,包的使用,制作模块,pip的使用以及文件的相关操作。
第四阶段(14-15天)
我也学了这个项目,是开发飞机大战游戏的,学会之后能更好的掌握知识点,除此之外,还看了黑马程序员的其它的项目视频,多多的实践。
结后语:
学习编程更重要的是实践、对编程感兴趣,如果想要视频可以私信我哦。
如何系统地自学 Python?
github项目地址:shfanzie/Systematically_self-study_Python
如何系统地自学 Python ?
网上 Google 、百度文章一大把,不知道从何学起,只会使初学者更加的迷惑。首先,我推荐一篇 彭猫 在知乎上的回答:如何系统地自学 Python ?希望能给大家一个系统地学习Python有点帮助。
知乎上聚集着非常多的程序员,你能找到各种条目的词条。例如:Python 词条下面的索引也能给你学习上很大的帮助。当然,遇到不懂的技术细节 Google 或者 StackOverflow 上去搜索相关的解决方案,以及参考维基百科的词条。
学习框架:
3W:why、what、how。你为什么要学习 Python,以及 Python 能干什么,那么怎么去学习 Python ? Python 可以让你做很多事情,科学计算和数据分析、爬虫、Web 网站、游戏、命令行实用工具等,以上列举的总有一种是你学习Python感兴趣的吧!
1、入门- 学习 Python 的语法知识、算法和数据结构、编程范式等。
-
学习 Python 的语法技巧、类库的使用、IDE使用等。
(持续更新中···)
-
利用 Python 结合专业知识解决具体的实际问题。
(持续更新中···)
-
了解 Python 的“内核”,也就是分析 Python 的源代码。
(持续更新中···)
MORE:
-
免费的计算机编程类中文书籍:一个免费的编程中文书籍索引,你可查看 Python 下的经典书籍。
-
@萧井陌:编程入门指南 v1.5:本指南更多讲的是学习中多问几个 Why,深入了解其背后的技术细节等。
最后引用【彭猫】的话:每个人学编程的道路都是不一样的,其实大都殊途同归,没有迷路的人只有不能坚持的人。虽然听上去有点鸡汤,但是这是事实。
Funny Things:
Python参考学习资料:
- 笨办法学 Python中文版:这本书在讲解 Python 的语法成分时,还附带大量可实践的例子,非常适合快速起步。
- Python 快速教程-Vamei 的博客
- 廖雪峰 Python 2.7 中文教程
- 廖雪峰 Python 3 中文教程:Python 中文教程的翘楚,专为刚刚步入程序世界的小白打造。
- Python 最佳实践指南:这本指南着重于 Python 的最佳实践,不管你是 Python 专家还是新手,都能获得极大的帮助。
- Python 官方文档2.73.5:实践中大部分问题,都可以在官方文档中找到答案。
- Awesome Python:这里列出了你在尝试解决各种实际问题时,Python 社区已有的工具型类库。
- 简明 Python 教程
- 零基础学 Python 第一版
- 零基础学 Python 第二版
- 知乎周刊·编程小白学Python
- 可爱的 Python
- Python 核心编程 第二版 CPyUG译
- Python 精要教程
- Python 2.7 官方教程中文版
- Python 3.3 官方教程中文版
- Python Cookbook 中文版
- Python3 Cookbook 中文版
- Think Python
- Think Python 2ed中文版
- Python 正则表达式操作指南
- Python进阶
- 深入 Python
- 深入 Python 3
- 精通 Python 设计模式
- python 安全编程教程
- 程序设计思想与方法
- Python 标准库 中文版
- PEP8 Python代码风格规范
- Google Python 风格指南 中文版
- Twisted 与异步编程入门
- TextGrocery 中文 API ( 基于svm算法的一个短文本分类 Python 库 )
- Requests: HTTP for Humans
- Pillow 中文文档
- PyMOTW 中文版
- Fabric 中文文档
- Beautiful Soup 4.2.0 中文文档
- Python 绘图库 matplotlib 官方指南中文翻译
- Scrapy 0.25 文档
- 用Python做科学计算
- Scipy 讲义
- Python 量化交易教程
- Python自然语言处理中文版 (感谢陈涛同学的翻译,也谢谢 @shwley 联系了作者)
- Sphinx 中文文档
- Django
- Flask
- web.py
- Tornado
这是我知乎上的回答,以后会持续更新的!
链接:https://www.zhihu.com/question/29138020/answer/131233120
以上是关于如何自学 Python的主要内容,如果未能解决你的问题,请参考以下文章