python虚拟试戴眼镜_程序员开讲:Python小白入门教程:02:Python开发的七种武器...

工欲善其事,必先利其器

1906d070123a7bcb257e63090939f1b8.png

Python2还是Python3

如果你没有听说过Python2、Python3什么的,那么,一个简要的声明是:

我的这个教程,所针对的,是Python3

如果你曾经对这二者有个耳闻,那么,我建议,放弃Python2吧,尤其如果你是一个Python语言的初学者的话。

Python2,距离它的正式退休,已经只有短短的7个半月了。

1039e75763c5c543f0d619e3d5e5836b.png

Python解释器

或许,你已经迫不及待的准备开始编程了?但别着急,我们还需要准备一个软件,这就是被称之为:Python解释器的东西。

什么是Python解释器?

基本上,我们可以把他类比为会场上,一个称职的外文同声翻译员。二者的职责所在,都是将一种语言,即时准确的翻译为另一种语言。

只不过,同声翻译所处理的,是两种不同的人类语言,比如一种英语,一种汉语;

而Python解释器(Python interpreter)所进行的工作,则是将程序员写的Python“源代码”,翻译成普通人,甚至包括很多程序员,都不知所云,但却可以被计算机理解并执行的“机器指令”。

【小贴士1】指令(instruction):计算机是一个很傻的工具,他只能完成有限的几种基本操作,这些基本操作就叫做指令,而编程的过程,其实就是在这些操作间,不断的进行各种组合的过程。

如果你还是不能理解,那么,可以类比一下算盘,基本上,施加在算盘上的指令就两个,即:

  • 在某个档位上,往上拨一颗珠子
  • 在某个档位上,往下拨一颗珠子

而编程,则是根据某个顺序,反复的执行这两个指令。这个过程和计算机实际上并无二致。

【小贴士2】严格的说,和现代很多语言,比如Java类似,Python解释器翻译生成的,其实是一种被称为字节码(Byte Code)的伪机器指令,只能运行在一种被称为Python虚拟机(Virtual Machine)上,这中间的细节并不简单。但我觉得,作为初学者,其实根本不需要关心这些。

9195ed6efed9476fb624baa361f5fe57.png

Microsoft Azure Notebooks

不幸的是,不管是在OSX上,还是在Windows上,并没有缺省的为大家准备任何形式的Python3的解释器,以及对应的类库,这几乎成了很多人学习Python时,所遇到的第一个困难。

不用觉得奇怪,即便是非常有经验的Python程序员,有时候也会被这些问题,搞个灰头土脸,动不动一天就过去了,还特别没有成就感。

所以,其实我是并不赞同初学者在学习的一开始,就将自己陷入到这样的泥淖之中的,因为我们有:

Microsoft Azure Notebooks

57c11efea04317ba2b5c4f2696216608.gif

这实际上是微软基于Jupyter,为开发者提供的一个在线笔记本服务。好吧,暂时我们可能不需要知道那么多,把它当成一个“开箱即用”且“免费”的Python代码编辑和运行环境就好了。

而且,最为便捷的是,对于大部分的“知名”类库,Azure Notebooks已经实现了自动的即用即装,并不需要开发者进行任何的人为配置,这一点,对于大家“优雅”的学习Python,显然是大有裨益的。

【小贴士3】Microsoft Azure Notebooks的作用当然不止于此,实际上,借助于微软Azure强大的云计算能力,我们可以“免费”的用Azure Notebooks来做很多事。此外,事实上,除微软外,Google也提供了类似的免费服务,即:Colab。有条件的朋友,也可选择使用,在易用性上,我个人觉得,比Azure Notebooks要来的稍微好一丢丢。

【小贴士4】如果你仅仅需要一个可以在线编写并执行Python代码的环境,而不需要Jupyter所提供的其他功能的话,那么,repl.it也是一个不错的选择,而且两个特点,让我无法忍住自己不去推荐他:

  • 强大的代码自动完成功能
6e7b25fa33f36769bf937613813d9c8c.gif
  • 除Python外,他还支持共大几十种开发语言代码的在线编写和执行
8367f875e22000b9ca2810fab785784e.png

而之所以我没有在一开始就推荐他,则和没有在一开始就介绍Colab的原因一样,想要顺畅的使用到这两种工具,可能你还需要一丢丢额外的辅助。

【小贴士5】我相信,repl.it的经营者,选择repl作为域名,并不是随意的,在软件开发技术中,REPL属于一个专用术语,是4个英文单词的简称,即:Read–Eval–Print-Loop,即:交互式编程环境(其实我不觉得这个翻译有多好)。简单来说,可以把REPL看成是一种代码会立即解释执行,而非编译执行的代码运行环境。大部分脚本语言的开发者,很多都在其引擎中,植入了相应的REPL软件,以供用户使用。

以Python为例,其所缺省安装的REPL为:ipython,如果你本地已经正确安装了Python引擎,那也不妨可以试着使用下,我在此就不赘述了。

简单又不简单的“Hello World”

好的,下面可以正式开始我们的Hello World之旅了。在Azure Notebooks上,创建一个工程,并在其下新建一个笔记本:

4875321ee65c894fb34334c7fc4be319.png

之后,在笔记本的第一个单元(Cell)中,输入如下代码,然后Run(执行),即可完成我们的第一个程序:

print("Hello World")

感觉简单的有点可怕?是的,很多时候,编程其实就是这样的直接明了。

但事情又不仅仅如此。首先,对于熟悉Python2的人来说,特别需要牢记的,是:在Python3中,print已经不再是一个语句,而是一个函数(function)!函数!函数!重要的话说三遍,其完整的语法如下所示:

print(*objects, sep=' ', end='', file=sys.stdout)

【小贴士6】函数是Python下最重要的语言现象之一,在Python中,函数不仅仅是对象,而且是第一类对象,关于函数的细节,我们将在后面的课程中专门讲解,这里,只需要知道:使用(实际上,程序员更喜欢使用“调用”这个词)一个函数的最简单的方法,就是:

函数名(参数1, 参数2, ......)

至于为何,Python要执意做这样的转变,则有一个很长的历史渊源,在这就不展开了,其中的一个动力,在我看来,应该源于对灵活性的追求。比如可以像下面这样,借助于lambda表达式,来实现一个自定义的特殊的输出函数period_print,其会在每个输出内容最后,自动增加一个句号(。)作为结尾:

d06a831451ab789d31ba0187869fcf39.png

这在print还是语句的时代,是不可想象的。当然,初学者或者尚看不明白所写为何,这不要紧,在后面的课程中,我们会一一涉及的。

其次,作为一个使用频率非常高的函数,即便我们单看print函数自身,也有诸多特别之处,值得我们留意,这里先讲2个。

(1) print一次可以接受多个对象的输出

不用太多的解释,简单的说,就是以下的两个语句,执行的效果相同:

4e976f6736bb65ae4ebc97c48d0d3b60.png

而且,print甚至不要求输出对象,都是字符串类型!因为Python会自动的将其转换为字符串进行输出。

(2) print函数下,可以通过修改如下参数,对输出进行控制:

  • sep参数:设置每个对象间的输出内容,缺省为空格
  • end参数:设置结尾处的输出内容,缺省为回车

【练习1】试解释为什么print("Hello World")和print("Hello

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值