编程语⾔python⼊门-Python基础教程,Python⼊门教程(⾮
常详细)
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 吗”,这是很多初学者经常问的⼀个问题。当然,计算机基础越好,对学习任何⼀门新的编程语⾔越有利,但如果你在编程语⾔的学习上属于零基础,也完全不⽤担⼼。
html网页模板怎么改
就我个⼈的观点,Python 作为学习编程的⼊门语⾔是再合适不过的,相⽐其他编程语⾔(⽐如 Java),Python 最⼤的优势就是⾮常容易上⼿。举个简单的例⼦,如果完成⼀个功能,使⽤ Java 实现需要 100 ⾏代码,那么使⽤ Python 可能只需要 20 ⾏。
python并行计算
有⼈可能会问,将 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?termux安装浏览器
对于初学者来说,要做的就是专注于 Python 这⼀门语⾔,明确学习的重点,把握好学习节奏,由浅⼊深循序渐进地学习。根据本⼈多年的学习⼯作经验,把编程语⾔的学习分为以下 3 步,⽆论你是否有编程基础,都可以对照着来做。
1) 多实践,积累代码量
任何⼀门编程语⾔,其囊括的知识⾯都是⾮常⼴泛的,从基本的变量赋值、条件循环、到⽂件操作、并发编程等。但是,千万不要等到把所有知识点都学完了才开始练习,因为到那时你会发现,前⾯好不容易记住的知识都忘记了。
学习编程,是⼗分讲究实战的,没有捷径可⾛,越早练习,练得越多越勤,学习效果就越好。
2) 时刻注意代码规范
学习编程语⾔,在追求快和⾼效的同时,每⼀种编程语⾔都有必要的编码规范,⼀定不能忽略。
要想成为⼀名优秀的程序员,从起步阶段就要刻意地去培养⾃⼰的编程规范。例如,在刚开始编写代码时,不要将原本多⾏的代码全部写到⼀⾏,也不要随便⽤ a、b、c 等字母作为变量的名称。
3) 开发经验是必不可少的
要想真正熟练地掌握 Python(或者其它编程语⾔),拥有⼤中型产品的开发经验是必不可少的,它会让你站得更⾼,望得更远。
例如,我们⼏乎每天都会⽤搜索引擎,但你了解⼀个搜索引擎的服务器端实现吗?这是⼀个典型的⾯向对象设计,需要定义⼀系列相关的类和函数,还要从产品需求、代码复杂度、效率以及可读性等多个⽅⾯综合考量,同时在上线后还要进⾏各种优化等。
为了辅助⼤家更好地学习 Python,这⾥准备了⼀章 Python 学习的知识图谱,涵盖了 Python 的核⼼知识。struct结尾

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。