唠叨一些关于Python的事情

文章讲述了Python语言的发展历程,从创始人吉多·范罗苏姆的初衷到现在的广泛应用,强调了Python的简洁、开放和强大的特点。同时提到了学习Python的策略和资源,包括开发工具、视频学习、实战案例和面试准备。
摘要由CSDN通过智能技术生成

如同学习任何一种自然语言比如英语、或者其它编程语言比如汇编(这个我喜欢,可惜多年之后,已经好久没有用过了)一样,总要说一说有关这种语言的事情,有的可能就是八卦,越八卦的越容易传播。当然,以下的所有说法中,难免充满了自恋,因为你看不到说Python的坏话。这也好理解,如果要挑缺点是比较容易的事情,但是找优点,不管是对人还是对其它事物,都是困难的。这也许是人的劣根之所在吧,喜欢挑别人的刺儿,从而彰显自己在那方面高于对方。特别是在我们这个麻将文化充斥的神奇地方,更多了。

废话少说点(已经不少了),进入有关python的话题。

Python的昨天今天和明天

这个题目有点大了,似乎回顾过去、考察现在、张望未来,都是那些掌握方向的大人物(司机吗?)做的。那就让我们每个人都成为大人物吧。因为如果不回顾一下历史,似乎无法满足学习者的好奇心;如果不考察一下现在,学习者不放心(担心学了之后没有什么用途);如果不张望一下未来,怎么能吸引(也算是一种忽悠吧)学习者或者未来的开发者呢?

Python的历史

Python的创始人为吉多·范罗苏姆(Guido van Rossum)。关于这个人开发这种语言的过程,很多资料里面都要记录下面的故事:

1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。之所以选中Python作为程序的名字,是因为他是一个蒙提·派森的飞行马戏团的爱好者。ABC是由吉多参加设计的一种教学语言。就吉多本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,吉多认为是非开放造成的。吉多决心在Python中避免这一错误,并取得了非常好的效果,完美结合了C和其他一些语言。

这个故事我是从维基百科里面直接复制过来的,很多讲python历史的资料里面,也都转载这段。但是,在我来看,这段故事有点忽悠人的味道。其实,上面这段中提到的,吉多为了打发时间而决定开发python的说法,来自他自己的这样一段自述:

Over six years ago, in December 1989, I was looking for a "hobby" programming project that would keep me occupied during the week around Christmas. My office (a government-run research lab in Amsterdam) would be closed, but I had a home computer, and not much else on my hands. I decided to write an interpreter for the new scripting language I had been thinking about lately: a descendant of ABC that would appeal to Unix/C hackers. I chose Python as a working title for the project, being in a slightly irreverent mood (and a big fan of Monty Python's Flying Circus).(原文地址:Foreword for "Programming Python" (1st ed.) | Python.org)

首先,必须承认,这个哥们儿是一个牛人,非常牛的人。此处献上我的崇拜。

其次,做为刚刚开始学习python的朋友,可千万别认为python就是一个随随便便就做出来的东西,就是一个牛人一冲动搞出来的东西。人家也是站在巨人的肩膀上的。

第三,牛人在成功之后,往往把奋斗的过程描绘的比较简单,或者是谦虚?或者是让人听起来他更牛?反正,我们看最后结果的时候,很难感受过程中的酸甜苦辣。

不管怎么样,牛人在那时刻开始创立了python,而且,他更牛的在于具有现代化的思维:开放。通过Python社区,吸引来自世界各地的开发者,参与python的建设。在这里,请读者一定要联想到Linux和它的创始人芬兰人林纳斯·托瓦兹。两者都秉承“开放”思想,得到了来自世界各地开发者和应用者的欢呼和尊敬。也请大家再联想到另外一个在另外领域秉承开放思想的人——邓小平先生,他让一个封闭的破旧老水车有了更新。

请列位多向所有倡导“开放”的牛人们表示敬意,是他们让这个世界更美好了。他们以行动诠释了热力学第二定律——“熵增原理”。

Python的现在

有一次与某软件公司一个号称是CTO的人谈话,他问我用什么语言开发,我说用Python,估计是我的英语发音不好吧(我这回真的谦虚了一把),他居然听成了Pascal(也是一种高级语言,现在很少用了,曾经是比较流行的教学语言)。呜呼,Python是小众吗?不是,是那家伙眼界不开阔!接触过不少号称CTO的,多数是有几年经验的程序员,并没有以国际视野来看待技术,当然,大牛的CTO还是不少的。总之,不要被外表忽悠了,“不看广告,看疗效”。

首先看一张最近一期的编程语言排行

python在这个榜单中第8,也许看官心理在想:为什么我不去学那个排第一呢?如果您是一个零基础的学习者,我以多年的工作和教学经验正告:还是从入门比较容易的开始吧,python是这样的。等以后,完全可以拓展到其它语言。或许你又问了,php和vb是不是可以呢?他们排名比python靠前。回答是:当然可以。但是,学习一种入门的语言,要多方考虑,或许以后你就不想学别的,想用这个包打天下了,那就只有python。并且,还得看下面的信息:

根据Dice.com一项网上对20000名IT专业人士进行调查的结果 : java类平均工资:91060美元; python类平均工资:90208美元;

不错,python程序员平均来讲,比java平均工资低,但看看差距,再看看两者的入门门槛,就知道,学习python绝对是一个性价比非常高的投资啦。

Python就是这样,默默地拓展着它的领域。

Python的未来

未来,要靠列位来做了,你学好了,用好了,未来它就光明了。它的未来在你手里。

Python的特点

很多高级语言都宣称自己是简单的、入门容易的,并且具有普适性的。真正做到这些的,不忽悠的,只有Python。有朋友做了一件衬衫,上面写着“生命有限,我用Python”,这说明什么?它有着简单、开发速度快,节省时间和精力的特点。因为它是开放的,有很多可爱的开发者(为开放社区做贡献的开发者,是最可爱的人),将常用的功能做好了,放在网上,谁都可以拿过来使用。这就是Python,这就是开放。

抄一段严格的描述,来自维基百科:

Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。Python支持重载运算符,因此Python也支持泛型设计。相对于Lisp这种传统的函数式编程语言,Python对函数式设计只提供了有限的支持。有两个标准库(functools, itertools)提供了Haskell和Standard ML中久经考验的函数式程序设计工具。

虽然Python可能被粗略地分类为“脚本语言”(script language),但实际上一些大规模软件开发项目例如Zope、Mnet及BitTorrent,Google也广泛地使用它。Python的支持者较喜欢称它为一种高级动态编程语言,原因是“脚本语言”泛指仅作简单程序设计任务的语言,如shell script、VBScript等只能处理简单任务的编程语言,并不能与Python相提并论。

Python本身被设计为可扩充的。并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和工具,以便程序员能够轻松地使用C、C++、Cython来编写扩充模块。Python编译器本身也可以被集成到其它需要脚本语言的程序内。因此,很多人还把Python作为一种“胶水语言”(glue language)使用。使用Python将其他语言编写的程序进行集成和封装。在Google内部的很多项目,例如Google Engine使用C++编写性能要求极高的部分,然后用Python或Java/Go调用相应的模块。《Python技术手册》的作者马特利(Alex Martelli)说:“这很难讲,不过,2004年,Python已在Google内部使用,Google召募许多Python高手,但在这之前就已决定使用Python。他们的目的是尽量使用Python,在不得已时改用C++;在操控硬件的场合使用C++,在快速开发时候使用Python。”

可能里面有一些术语还不是很理解,没关系,只要明白:Python是一种很牛的语言,应用简单,功能强大,google都在使用。这就足够了,足够让你下决心学习了。

python哲学

Python之所以与众不同,还在于它强调一种哲学理念,用黑字表示强调吧:

Python的设计哲学是“优雅”、“明确”、“简单”。

Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事。在设计Python语言时,如果面临多种选择,Python开发者一般会拒绝花俏的语法,而选择明确没有或者很少有歧义的语法。由于这种设计观念的差异,Python源代码通常具备更好的可读性,并且能够支撑大规模的软件开发。这些准则被称为Python格言。

The Zen of 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的美好,开始学啦,做好如下准备:

  • 电脑,必须的。不管是什么操作系统。
  • 上网,必须的。没有为什么。

除了这些,还有一条,非常非常重要,写在最后:这是自己的兴趣。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、Python必备开发工具

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、Python练习题

检查学习结果。

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

《 Big bang 》是著名的美剧。在剧中 Sheldon 可以说是一个极品,真不知 Leonard 是如何忍受这位极品室友成天的唠叨。 你知道么? Sheldon 有一个神秘的小本本,记录了所有他从小开始讨厌的人名。 Stuart 这位漫画店老板就是小本本的一员哦,谁叫他常常毫不客气地挤兑 Sheldon ,曾多次赌赢过 Sheldon 呢。 Penny 是一个漂亮的女孩,好奇心也很强。为了满足她的好奇心,我当回编剧让她意外知道了 Sheldon 的那个小本本放在了哪里。于是她几乎每天都去看,看看上面有哪些人。但是那个小本本上的人名实在太多。要知道她可是没上过大学在饭店里面当服务员啊。请聪明的你帮帮她处理处理那个小本本吧。Sheldon 每天都会在小本本里记录些人名,当然有时也会与他们和好就会从小本本中将这个人名删除。我们假设 Sheldon 会在一个空的小本本上插入、删除、查询某个人。 要帮助 Penny ,你需要知道一个链表是怎么初始化、插入、删除以及查找的。 输入格式: 输入数据只有一组,有很多行。每行的格式可能是下列一种: insert a name delete name show search name 其中 a 是一个整数,代表在第 a 个名字前插入名字。 name 是一个姓名,只包含英文字母的大小写,每个名字不超过30个字符。 输入保证不会插入列表中已经存在的姓名,不会删除列表中不存在的姓名,不会搜索列表中不存在的姓名,也不会要求在非法的位置插入列表。
05-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员二飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值