如何学习Python

Python是什么


Python(英语发音:/ˈpaɪθən/), 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年,Python 源代码同样遵循 GPL(GNU General Public License)协议。Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。(来自百科)

Python的由来


Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC语言的一种继承。之所以选中Python(大蟒蛇的意思)作为程序的名字,是因为他是一个Monty Python的飞行马戏团的爱好者。牛逼的人物就是牛,这跟当前的汤普森创建Unix有着异曲同工之妙;当年的高德纳老爷子,为了写文章舒服就发明TeX排版。

ABC是由Guido参加设计的一种教学语言。就Guido本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,Guido认为是非开放造成的。Guido决心在Python中避免这一错误(的确如此,Python与其它的语言如C、C++和Java结合的非常好)。同时,他还想实现在ABC中闪现过但未曾实现的东西。

就这样,Python在Guido手中诞生了。实际上,第一个实现是在Mac机上。可以说,Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shell和C的习惯。

介绍完Python的历史及由来后,接下来我们介绍一下为什么要学习Python。

为什么要学习


Python最近几年发展的非常火,我们看一下近三年的编程语言排行榜,看一下Python的排行就知道了。

近几年的流行度


首先看2015年3月份的排行情况:

这是2015年3月份的排行,位于第8名的位置。接下来看看2016年3月份排行榜Python的位置排名:

2016年3月份已经上升到了第5名。接下来继续看看2017年5月份发布的编程语言排行榜中Python的排名:

截止到2017年5月份,Python的排名已经跃居第4名了。

入门相对简单


Python语言相对其他语言来说相对简单些。比如同样写一个“Hello,World”这样的一个入门程序,我们对比一下C、Java及Python分别是如何写的。

首先看C的写法:

#include <stdio.h> int main(int argc, char *argv[]) { printf("Hello World\n"); return 0; }

对上面的C代码编译及运行:

(mypy) [lavenliu@vpnserver ~]$ gcc -o hello hello.c (mypy) [lavenliu@vpnserver ~]$ ./hello Hello World

再看Java的写法:

public class Hello { public static void main(String[] args) { System.out.println("Hello World"); } }

对上面的Java代码进行编译并运行:

(mypy) [lavenliu@vpnserver ~]$ javac Hello.java (mypy) [lavenliu@vpnserver ~]$ java Hello Hello World

接下来我们看看Python的“Hello World”的正确打开姿势,在命令行中直接输入python即可进入Python的交互式解释界面:

(mypy) [lavenliu@vpnserver ~]$ python Python 3.5.2 (default, Jun 16 2017, 08:22:30) [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> print('Hello World') # 仅此一行就搞定了“Hello World” Hello World

由此看来,是不是很简单?

DevOps的发展


近几年DevOps的发展,促使开发、运维及测试等部门的紧密结合(DevOps的概念源于亚马逊及Google等这样的超大型互联网公司,这些公司部门员工需要紧密协作,同时又不希望出现部门割据。)。

DevOps的另一个意思也是要求运维具备一定的开发水平,这样才能提高自身竞争力。现在单纯的运维已经面临非常尴尬的局面:公有云的兴起,大部分新型公司已经对运维的依赖性比较小了,云厂商已经把大部分的底层的运维工作给做了。如,系统监控等等。这时,运维人员的存在几乎变得可有可无,剩下的工作,开发们都可以完成。对于公司来说,也节省了人力成本。

对于那些基础的且毫无开发经验的运维来说,只能做一些底层的一些工作。如果想要破局,小白认为:其一,向资深运维发展(成为运维专家);其二,向运维开发发展(具备开发水平)。

接下来说说如何学习。

如何学习Python


学习Python之前要有Python的环境。首先,在我们的系统上要安装Python。其次是版本的选择,选择Python2还是Python3呢?如果我们纯粹学习Python这门语言,那么小白建议选择Python3。而且,Python2的支持年限是到2020年,那我们为什么不选择Python3呢?

关于怎么安装Python,本文不做过多介绍。如果您使用的是Gnu/Linux或Mac OS,那么这些系统上默认是自带Python环境的,可以直接拿来使用。如果您用的是Windows,那么Python的安装也是比较简单的。

学习Python要有趁手的工具才行。首先,我们要有自己喜欢的编辑环境。那么,我们可以选择编辑器及IDE。编辑器这里小白推荐使用Vim或Emacs,一个是编辑器之神,一个是神的编辑器,两者都非常强大。如果要使用IDE,墙裂推荐使用PyCharm。

专心看本公众号文章


小白是从2014年开始自学Python的,中间经历了各种的问题,写了很多笔记。也写了很多与工作相关的脚本。后续的文章会娓娓道来。还请大家多多关注。小白所写每一篇文章都是精心写作,并上机实践,确保案例的可行性及正确性。

动手实践才是硬道理


天下武功,唯快不破。学习编程,唯不动手而学不会。学习编程最大的忌讳就是不动手实践。学习了一定的理论知识,并没有经过动手实践及长期的大量练习,会有一种学完即忘的感觉。所以,学习编程的宗旨是:动手、实践、实践、再实践!

每天坚持一定的代码量,不管多少。可以为了解决一个问题,可以为了好玩等等目的。保持一定的代码量,这样才能做到说写代码,就能写出代码的效果。

总结


本公众号更多的是关注Python的学习,就像前面的文章说的一样,但不限于Python。期间还会有一些Linux运维相关的文章。另外,小白是非常喜欢TeX及Keynote的,如果有机会也会在公众号里跟大家分享。

原文发布于微信公众号 - 小白的技术客栈(XBDJSKZ)

原文发表时间:2017-08-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏积累沉淀

Hive2.0.0操作HBase 1.2.1报错解决

首先看错  org.apache.hive.service.cli.HiveSQLException: Failed to open new session: ...

2369
来自专栏C/C++基础

C#获取系统当前时间

ystem.DateTime currentTime=new System.DateTime(); 1.1 取当前年月日时分秒 currentTime=Sy...

1153
来自专栏c#开发者

C# : row-clickable GridView and get and set gridview rows using JavaScript

Complete C# code: ---------------- using System; using System.ComponentModel; ...

2996
来自专栏张善友的专栏

Using sqlite with .NET

The other day I found that there is a .NET wrapper for sqlite. sqlite is a very ...

2298
来自专栏跟着阿笨一起玩NET

[C#]工具类—FTP上传下载

  不错的文章:http://www.cnblogs.com/greatverve/archive/2012/03/03/csharp-ftp.html

1201
来自专栏成长道路

JDBC动态SQL语句连接orcale数据库的工具类

import java.sql.Connection; import java.sql.DriverManager; import java.sql.P...

2510
来自专栏海说

Java应用中常见的JDBC连接字符串(SQLite、MySQL、Oracle、Sybase、SQLServer、DB2)

Java应用中常见的JDBC连接字符串 Java应用中连接数据库是不可或缺的,于是便整理一些可能用到的JDBC的jar包及其相匹配的URL,以备日后查阅。 1)...

2730
来自专栏吴小龙同學

时间工具类TimeUtil

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30...

3066
来自专栏Pulsar-V

C#下各种获取时间的姿势

直接贴代码吧 DateTime dt = DateTime.Now; Label1.Text = dt.ToString();//2005-11-5 13:21...

3236
来自专栏菩提树下的杨过

遍历文件夹所有文件(示例)

//要引用 using System.Collections.Specialized; public StringCollection GetAllFile...

2159

扫码关注云+社区