爱学习,爱生活,会学习,会生活,人生有百学网更精彩!
爱学习 | 爱生活

Python 语言概要

发布于:百学网 2022-02-25

Python 语言概要

  1.3 程序

  计算机程序( Computer Program ),或称为程序( Program ),是一组指示计算机或其他具有信息处理能力的设备完成操作的指令集合。通常,程序是由某种编程语言编写而成。

  程序编写出来之后,毫无疑问要在计算机上执行——俗称”跑“(run)起来。要达到这个目的,必须要让计算机能够“认识”程序,从而“知道”自己干什么。

  如果程序是用机器语言编写的,那么计算机就能够直接“认识”了。如果程序是由高级语言编写的,要让计算机“认识”,必须先将程序“翻译”成机器语言。这与自然语言颇为类似。鲁迅在《阿Q正传》中写道:他却总说道No!——这是洋话,你们不懂的。没有学过洋话的人要想听懂,必须要翻译。

  对于程序而言,所使用的“翻译”方式有两种:编译和解释。在解释这两种方式之前,先了解几个常用术语:

  源代码:用某种高级语言写的程序就称为“源代码”。

  源文件:保存源代码的文件称为源文件。

  本地代码:计算机(具体就是 CPU )能直接执行的机器语言的程序。用任何编程语言编写的源代码,最后都要翻译为本地代码。

  再简要两种“翻译”方式:

  (1)编译

  用编译器( Complier ,也是一种程序)将源代码全部翻译为本地代码的过程,就是编译( Compile )。所谓编译器,则是执行这一过程的程序。

  某些编程语言写的程序需要编译之后才能执行,这类语言常称为“编译型语言”,比如:C 语言。

  (2)解释

  有的程序,不需要编译,在运行它的时候,直接用解释器( Interpreter ,也是一种程序)对源代码进行解释( Interpretation )和执行。

  同样,用于编写这类程序的编程语言,称为“解释型语言”,比如 BASIC 。

  ★自学建议自学并不是坦途,但“踏平坎坷成大道”。在网站 www.itdiffer.com 中“有则改之”页面,记录很多学习者与我的交流和提问,特别建议读者认真阅读一番,辨别其中哪些是真正的“困难”,哪些是自己给自己故意设置的所谓“困难”——有则改之,无则加勉。如果学习中遇到了真正的困难——没有电脑之类的困难不在此列——自己应该庆幸,因为这是进步的阶梯。面对困难,不要烦躁、恼火——气大伤身,且不解决问题——而是要理智地分析困难,利用搜索引擎和其他网站,搜索相关资料——务必要认真地、完整地阅读,切忌走马观花。再结合当前问题,通过反复操作尝试,尽力解决困难——通常这样做必然能“成大道”。”

  1.4 Python 语言

  在1.2节中已经简要介绍了编程语言,读者借用本书将要自学的是一种名为 Python 的高级编程语言。为什么要学习这种编程语言,其解释是仁者见仁智者见智。先看看由 TIOBE 提供的2021年10月的编程语言排行榜(如图1-4-1所示,来源:https://www.tiobe.com/tiobe-index/ )。

  图1-4-1 编程语言排行榜

  从榜单可见,Python 语言位列第一名。读者查看此排行榜的时候,位次可能会有变化,但无论如何,Python 语言不论在工程实践还是教学领域,都是颇受欢迎的编程语言。

  既来之,则安之。已经阅读到这里了,哪怕就是道听途说“ Python 语言好”,也算是一个学习理由吧。更何况,从当前流行的编程语言趋势来看,Python 语言也日益成为“大众编程语言”——业已走入中小学的计算机教材之中。

  一种“已过而立之年”的编程语言,缘何有如此魅力?还要从“初心”开始谈起。

  图1-4-2 Guido van Rossum

  (源自:https://zh.wikipedia.org/wiki/Python)

  Python 语言的发明人是吉多·范罗苏姆( Guido van Rossum )。关于他发明 Python 语言的过程有很多传奇地描写,例如在“维基百科”的中文词条“Python”中说他在圣诞节期间“为了打发时间,决心开发”此编程语言。这种写法无非是要表现非凡之人的非凡之处(“是时雷电晦冥,……,则见蛟龙于其上。已而有身,遂产高祖”《史记·高祖本纪》)。

  不论吉多的发明过程被描述得多么神奇,Python 语言终究是诞生了,它的主要特点和“初心”还被总结为《Zen of Python》(中文翻译为《 Python 之禅》)。下面列出英文和中文两个版本(中文翻译来自“维基百科”的“ Python 之禅”词条),读者可以对照阅读,从中初步了解 Python 语言的特点。在后续的学习过程中,还可以将所学 Python 语言知识与此处的诗句对照,感悟这些凝练的词语中所蕴含的深刻含义。

  英文版 中文版

  Beautiful is better than ugly.

  Explicit is better than implicit.

  Simple is better than complex.

  Complex is better than complicated.

  Flat is better than nested.

  Sparse is better than dense.

  Readability counts.

  Special cases aren't special enough to break the rules.

  Although practicality beats purity.

  Errors should never pass silently.

  Unless explicitly silenced.

  In the face of ambiguity, refuse the temptation to guess.

  There should be one-- and preferably only one --obvious way to do it.

  Although that way may not be obvious at first unless you're Dutch.

  Now is better than never.

  Although never is often better than right now.

  If the implementation is hard to explain, it's a bad idea.

  If the implementation is easy to explain, it may be a good idea.

  Namespaces are one honking great idea -- let's do more of those! 优美优于丑陋,

  明瞭优于隐晦;

  简单优于复杂,

  复杂优于凌乱,

  扁平优于嵌套,

  稀疏优于稠密,

  可读性很重要!

  即使实用比纯粹更优,

  特例亦不可违背原则。

  错误绝不能悄悄忽略,

  除非它明确需要如此。

  面对不确定性,拒绝妄加猜测。

  任何问题应有一种,且最好只有一种,

  显而易见的解决方法

  尽管这方法一开始并非如此直观,除非你是荷兰人。

  做优于不做,

  然而不假思索还不如不做。

  很难解释的,必然是坏方法。

  很好解释的,可能是好方法。

  命名空间是个绝妙的主意,

  我们应好好利用它。

  现在的 Python 编程语言,由于遵循着“开源、开放”的原则,已经发展成为一个覆盖诸多领域的开放生态系统,例如在人工智能领域,每个深度学习框架都要发布“ Python 版”——这是标准配置。

  下图是 PyPI 网站的首页( pypi.org ),这个网站专门用于开发者发布 Python 第三方库(参阅第11章11.4节),至编写这段内容为止,此网站上已经有 298,220 个项目(如图1-4-3所示,到第11章11.4节时,会看到此图的变化)。毫不夸张地说,PyPI 的第三方库几乎涵盖了常规开发的各个领域——需要开发什么,先来这里搜一下,看看有没有“轮子”。正是有如此庞大的生态系统,才让程序员用 Python 语言实现了“以人为本,节省开发者时间”的要求。

  图1-4-3 PyPI 首页

  ★自学建议就学什么编程语言而言,历来有很多争论,当然也没有定论——大家更愿意争论。比如有的认为应该学“程序执行速度快”的编程语言,有的认为应该学“用途广泛的”的编程语言,有的认为应该学“开发速度快”的编程语言,还有的认为应该学“简单易学”的编程语言,等等。不一而足。读者对此如何决断?是听大师们教诲?还是听同学们的劝导?还是看网上的帖子?亦或随大流,看招聘网站上招聘信息的多寡?或者看自媒体上的宣扬?“小马过河”是一个非常生动的故事,每个人都有自己的需要和境况。至于学习哪种编程语言,甚至于是否学习编程,都要结合自己的具体情况,独立思考,做出判断。而非人云亦云,更不能跟着感觉走。顺便提醒,不要忘记,最“节省机器时间”的编程语言是机器语言。

  原创 老齐 老齐教室

本站(www.100xue.net)部分图文转自网络,刊登本文仅为传播信息之用,绝不代表赞同其观点或担保其真实性。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系(底部邮箱),我们将及时更正、删除,谢谢

- END -
  • 相关文章