Python 英文本意为“蟒蛇”,直到 1989 年荷兰人 Guido van Rossum (简称 Guido)发明了一种面向对象的解释型编程语言(后续会介绍),并将其命名为 Python,才赋予了它表示一门编程语言的含义。

图 1 Python 图标

说道 Python,它的诞生是极具戏曲性的,据 Guido 的自述记载,Python 语言是他在圣诞节期间为了打发时间开发出来的,之所以会选择 Python 作为该编程语言的名字,是因为 Guido 是一个叫 Monty Python 戏剧团体的忠实粉丝。

看似 Python 是“不经意间”开发出来的,但丝毫不比其它编程语言差。自 1991 年 Python 第一个公开发行版问世后,2004 年 Python 的使用率呈线性增长,不断受到编程者的欢迎和喜爱;2010 年,Python 荣膺 TIOBE 2010 年度语言桂冠;2017 年,IEEE Spectrum 发布的 2017 年度编程语言排行榜中,Python 位居第 1 位。

直至现在(2019 年 6 月份),根据 TIOBE 排行榜的显示,Python 也居于第 3 位,且有继续提升的态势(如表 2 所示)。

表 2 TIOBE 2019 年 6 月份编程语言排行榜(前 10 名)

Jun 2019Jun 2018ChangeProgramming LanguageRatings

1

1

Java

15.004%

2

2

C

13.300%

3

4

Python

8.530%

4

3

C++

7.384%

5

6

Visual Basic .NET

4.624%

6

5

4.483%

8

7

2.567%

9

9

SQL

2.224%

10

16

Assembly language

1.479%

Python语言的特点

相比其它编程语言,Python 具有以下特点。

1) Python简单易学

“编程零基础,可以学习 Python 吗”,这是很多初学者经常问的一个问题。当然,计算机基础越好,对学习任何一门新的编程语言越有利,但如果你在编程语言的学习上属于零基础,也完全不用担心。

就我个人的观点,Python 作为学习编程的入门语言是再合适不过的,相比其他编程语言(比如 Java),Python 最大的优势就是非常容易上手。举个简单的例子,如果完成一个功能,使用 Java 实现需要 100 行代码,那么使用 Python 可能只需要 20 行。

有人可能会问,将 C 语言作为入门语言不好吗?就目前的就业形势来说,仅掌握 C 语言是很难找到高薪的工作的,而掌握 Python 则不同。

并且,在使用其它编程语言编程时(例如 C、C++),你需要时刻注意数据类型、内存溢出、边界检查等问题。而 Python 则不用,因为在底层实现时,它已经帮你一一处理好了。

2) Python功能强大

Python 强大的功能是很多用户支持 Python 的最重要的原因,从字符串处理到复杂的 3D 图形编程,Python 借助扩展模块都可以轻松完成。

实际上,Python 的核心模块已经提供了足够强大的功能,使用 Python 精心设计的内置对象可以完成许多功能强大的操作。

此外,Python 的社区也很发达,即使一些小众的应用场景,Python 往往也有对应的开源模块来提供解决方案。

3) Python是解释型语言

编程语言按照程序的执行方式,可以分为编译型和解释型两种,典型的编译型语言有 C、C++ 等,而解释型语言有 Java、Python 等。

相比编译型语言,解释型语言最大的优势就是可移植性强。也就是说,Python 具有非常好的跨平台的特性。

4) Python是面向对象的编程语言

Python 既支持面向过程编程,也支持面向对象编程。在“面向过程”的语言中(如 C 语言),程序仅仅是由可重用代码的函数构建起来的;而在“面向对象”的语言(如 C++)中,程序是由数据和功能组合而成的对象构建起来的。

而且和其它面向对象的编程语言(如 C++ 和 Java)相比,Python 是以一种非常强大,而又简单的方式实现的面向对象编程。

除此之外,Python 还有开源、有良好的可扩展性等特点。基于以上这些特性,Python 广泛应用在人工智能、图像处理、Web应用开发、自动化运维、网络爬虫等领域。

Python版本的选择

Python 自发布以来,共历经了 3 个大的版本,分别是:

1994 年发布的 Python 1.0 版本(已过时);

2000 年发布的 Python 2.0 版本,截止到 2019 年 3 月份,已经更新到 2.7.16;

2008 年发布的 Python 3.0 版本,截止到 2019 年 3 月份,已经更新到 3.7.3;

3 个版本中,Python 3.0 是一次重大的升级,为了避免引入历史包袱,Python 3.0 没有考虑与 Python 2.x 的兼容,这也就导致很长时间以来,Python 2.x 的用户不愿意升级到 Python 3.0。

除此之外,造成目前这种状况的另一个原因是,将现有应用从 Python 2.x 迁移到 Python 3.x 是一项不小的挑战。虽然有 2to3(后续会介绍)之类的工具可以进行代码的自动转换,但无法保证转换后的代码 100% 正确。而且,如果不做人工修改的话,转换后的代码性能可能还不如转换前。因此,将现有的复杂代码库迁移到 Python 3.x 上可能需要付出巨大的精力和成本,某些公司无法负担这些成本。

目前,根据统计显示,使用 Python 2.x 的开发者仍占 63.7%,而Python 3.x 的用户占 36.3%,由此可见,使用 Python 2.x 的用户还是占多数。在 2014 年,Python 创始人宣布,将 Python 2.7 支持时间延长到 2020 。

那么,初学者应该选择什么版本呢?这里建议大家选择 Python 3.x 版本,理由有以下几点:

使用 Python 3.x 已经是大势所趋

目前,虽然使用 Python 2.x 的开发者居多,但使用 Python 3.x 的开发者正在迅速增加,如图 1 所示:

图 1 Python 3.x 是大势所趋

另外,根据 PEP-404 这份文档,Python 2.x 版本将不会再发布 2.8 版本,且未来非常重要的项目(如 Django、Flask 和 Numpy)可能都将放弃对 2.x 的支持,仅支持 Python 3.x。因此,从长远来看,学习 Python 3.x 只有好处。

Python 3.x在 Python 2.x 的基础上做了功能升级

Python 3.x 对 Python 2.x 的标准库进行了一定程序的重新拆分和整合,比 Python 2.x 更容易理解,特别是在字符编码方面。Python 2.x 中对于中文字符串的支持性能不够好,需要编写单独的代码对中文进行处理,否则不能正确显示中文,而 Python 3.x 已经将该问题成功解决了。

Python 3.x 和 Python 2.x 思想基本是共通的

Python 3.x 和 Python 2.x 思想基本上是共通的,只有少量的语法差别,学会的 Python 3.x,只要稍微花点时间学习 Python 2.x 的语法,即可灵活运用这两个不同版本了。

注意,选择 Python 3.x 也不是没有弊端,很多扩展库的发行总是会滞后于 Python 的发行版本,甚至目前还有很多库不支持 Python 3.x。

因此,在选择 Python 时,一定要先考虑清楚自己的学习目的,比如说,打算做哪方面的开发,此方向需要用法哪些扩展库,以及这些扩展库支持的最高 Python 版本等,明确这些问题后,再选择适合自己的版本。

关于 Python 3.x 和 Python 2.x 具体的区别,可阅读《Python 3 和 Python 2 区别》一节。

初学者应该如何学习Python?

对于初学者来说,要做的就是专注于 Python 这一门语言,明确学习的重点,把握好学习节奏,由浅入深循序渐进地学习。根据本人多年的学习工作经验,把编程语言的学习分为以下 3 步,无论你是否有编程基础,都可以对照着来做。

1) 多实践,积累代码量

任何一门编程语言,其囊括的知识面都是非常广泛的,从基本的变量赋值、条件循环、到文件操作、并发编程等。但是,千万不要等到把所有知识点都学完了才开始练习,因为到那时你会发现,前面好不容易记住的知识都忘记了。

学习编程,是十分讲究实战的,没有捷径可走,越早练习,练得越多越勤,学习效果就越好。

2) 时刻注意代码规范

学习编程语言,在追求快和高效的同时,每一种编程语言都有必要的编码规范,一定不能忽略。

要想成为一名优秀的程序员,从起步阶段就要刻意地去培养自己的编程规范。例如,在刚开始编写代码时,不要将原本多行的代码全部写到一行,也不要随便用 a、b、c 等字母作为变量的名称。

3) 开发经验是必不可少的

要想真正熟练地掌握 Python(或者其它编程语言),拥有大中型产品的开发经验是必不可少的,它会让你站得更高,望得更远。

例如,我们几乎每天都会用搜索引擎,但你了解一个搜索引擎的服务器端实现吗?这是一个典型的面向对象设计,需要定义一系列相关的类和函数,还要从产品需求、代码复杂度、效率以及可读性等多个方面综合考量,同时在上线后还要进行各种优化等。

为了辅助大家更好地学习 Python,这里准备了一章 Python 学习的知识图谱,涵盖了 Python 的核心知识。

原文地址:https://www.cnblogs.com/tdskee/p/12167682.html

python自学入门教程-Python基础教程,Python入门教程(非常详细)相关推荐

  1. 零基础自学python教程-零基础学Python不迷茫——基本学习路线及教程

    什么是Python? 在过去的2018年里,Python成功的证明了它自己有多火,它那"简洁"与明了的语言成功的吸引了大批程序员与大数据应用这的注意,的确,它的实用性的确是配的上它 ...

  2. 免费python全套教程-0基础学python 全套教程送你参考

    我0基础学Python可以吗? 我赞成把Python作为入门语言: 为什么选择python Python可以说是编程语言中罕见的既简单又强大的一门语言,python语言简洁,语言优雅,功能强大,使用p ...

  3. 编程没基础学python多长时间--零基础学Python,从入门到精通需要多长时间

    求一份小甲鱼的<零基础入门学习Python>视频教程 评论 本系列教程面向础的同学,是一个深入浅通俗易懂的Python3视频教程. 适群 完全零基础入门,不需要任何前置知识. 教程概述 前 ...

  4. 零基础自学python看什么书-零基础学习Python那些书值得看

    下面列出的所有资料中,有一部分是从头到尾全部读完的,也有一部分是他人推荐.希望给准备开始学习的朋友一点参考. 刚开始我学习Python的时候,并没有直接寻找书籍还有公开课,而是在思考是该学习Pytho ...

  5. python 运算符重载_零基础小白Python入门必看:面向对象之典型魔术方法

    魔术方法 查看类的魔术方法 class A: passdir(A) # 可以得到类所有公有成员复制代码 输出结果如下 ['__class__', '__delattr__', '__dict__', ...

  6. 零基础python必背代码-零基础小白Python入门必看:通俗易懂,搞定深浅拷贝

    Python中的深浅拷贝 在讲深浅拷贝之前,想先讲一下 is 和==的区别. 在进行对象是否相等比较的时候我们可以用is 和 == is:比较两个对象的引用是否相同,即它们的id 是否一样 == : ...

  7. 零基础自学python的建议-关于零基础学习 Python 有什么好的建议?

    Python这种高级编程语言,相比前编程明星C++和Java等更简单易操作.,目前Python已成为最受AI从业者欢迎的语言. Python的10个基础知识点 Python是一个面向对象的解释型的交互 ...

  8. 自学python还是报班-零基础学Python是应该报课还是自学?

    近几年来人工智能的不断发展,把"python"语言推上了人们的视野,一度登上了各种开发语言的三甲,伴随而来的是铺天盖地的培训广告. python 真的那么火? python语言确实 ...

  9. python自学行吗-零基础可以学会python吗?python好学吗?

    一.编程零基础可以学会python吗? 首先我要说Python是一种解释型语言:这意味着开发过程中没有了编译这个环节.类似于PHP和Perl语言. Python是交互式语言:这意味着,您可以在一个Py ...

  10. python自学用什么书好-适合python基础学习的好书籍

    分享几本python基础学习的书籍给大家 <Python编程:从入门到实践> 内容简介:本书是一本针对所有层次的Python 读者而作的Python 入门书.全书分两部分:第一部分介绍用P ...

最新文章

  1. 华为平板上wps另存为的文件在哪里能找到_原创干货 | WPS危害之嵌入ole对象绑定载荷...
  2. 无插件无 Flash HTML5 浏览器直接玩《Quake II》
  3. DES算法C语言实现
  4. cxf 本地wsdl_cxf使用wsdl文件生成代码
  5. 第五章 软件下载与安装(二、Ubuntu安装Mininet)
  6. oracle数据库卸载(需要完全卸载oracl才能重装)
  7. LInux下如何挂载光盘找rpm包?
  8. 解决 jQuery 和其他库的冲突
  9. 线程同步:喂,SHE
  10. Crossing Road Simulation
  11. houdini 常用
  12. 订阅号与服务号的区别
  13. 【Pandas实战】1000部流行电影数据分析
  14. IT行业都有哪些职位,初学者(0基础,新人)该如何选择,才能够快速进入这个行业?... 1
  15. andriod中3g模块没有mac地址的原因
  16. main.c: In function ‘hello’: main.c:3:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ bef
  17. 静态HTML网页设计作品——生鲜超市网站设计(5页)HTML+CSS+JavaScript 学生DW网页设计作业成品 美食站
  18. prism EventAggregator(事件聚合器)
  19. Android - 仿iPhone调节音量/亮度
  20. Unity计时器脚本

热门文章

  1. 开发日记-20190409 关键词 理想activity模型
  2. RethinkDB是什么?—— 面向文档的NOSQL数据库,MVCC+Btree索引,pushes JSON to your apps in realtime采用push思路,优化的ssd存储...
  3. pyhton 去除字典空值
  4. ES6中的异步对象Promise
  5. iOS开发之Masonry框架源码深度解析
  6. 从零开始学习html(七)CSS样式基本知识
  7. Angular 下的 directive (part 2)
  8. ETL工具箱 5提交维表
  9. Zabbix监控实现跨区域跨网络监控数据
  10. 玩转python字体