1、刺激你的胃口(Whetting your Appetite)

1、刺激你的胃口(Whetting your Appetite)

如果你在计算机上做了许多事情,那么实际上,你发现,有一些任务是可以自动完成的。例如,你也许希望在许多文本文件上操作一个寻找和替换,或者用一种复杂的方式来给一大堆照片重新命名,并重新安排顺序。也许,你还愿意写一个小小的常规数据库,或者是说明一下GUI应用,或者是运行一个简单的游戏。
如果你是一个职业的软件开发者,你可能必须用C/C++/Java语言来进行开发。但是你发现,那些通常的写/编/测试/重编/的循环过程实在是太慢。也许你正在为这样一个图书馆用户写一个测试套件,你发现写这样一个测试代码太为乏味枯燥。或者,你可能在写一个程序,这个程序使用一种扩展式语言,你却不愿意为你的运用去设计并且补充一个全新的语言。

这时候,python这个语言正好就是为你准备的。

你可以为这些任务中的某些任务写一个基于Unix操作系统的脚本(Unix shell script)或者是基于Windows操作系统的批处理文件(Windows batch files),但是,脚本最好是可以在文件之间移动并且还可以改变文本的数据库(text data),并且,它对图形用户界面(GUI)运用或游戏不适合(well-suited)。你可以写一个C/C++/Java程序,但那需要花费很多的开发时间才能得到一份最初的程序草稿。Python使用起来更简单,在Windows,mac OSX,还有UNIX等操作系统上也可用,这将帮助你更迅速地完成工作任务。

Python用起来简单,但它却是一个实实在在的程序语言,提供许多许多结构,支持比脚本,也比批处理文件更大的大程序。另一方面,python还提供比C语言更多的错误检查,它是一个高水准的语言,有高水准的内置数据类型,例如柔性的数组(arrays)和词典。由于其更为普遍的数据类型,python可运用于比Awk,甚至比Perl更为大范围的问题领域,许多任务在python中去完成,至少要比在其它语言中更为容易。
Python允许你把程序分成若干种模快(module),这些模块还可以在其它的python程序中应用。它和标准模块集成在一起形成一个大的模块集成,那些标准模块则是用作为你建立程序的基础——或者是,这些模块作为样例让你学习编制python程序。这些模块中的某些模块提供类似于I/O那样的文件,提供系统的调用,套接字(socket),甚至是通向图形使用接口,类似于Tk的工具包(toolkit)
Python是一个解释性的语言,它能够在整个程序开发期间节省你的时间,因为无需编辑和链接。解释器可以是交互式的使用,这使得很容易体验这个语言的特性,一次性地就将程序写好,或者在全部程序开发从底部到头部的过程中,测试程序的功能。它还是现成的桌面计算器。
Python使得程序能够紧致地并且可读性地写成。用python写的程序比起同样程序,但用C,C++和Java写成,代码会短很多。这是因为以下几个原因:
高水准的数据类型允许你用简短的陈述去表达复杂的操作;
借助缩略标识(identation)而不是开头和结尾的括号,来分割陈述组。
不用声明变元或者参数

Python是扩展的:如果你知道如何在C语言中编程,就很容易添加一个内置函数或者模块给解释器,或者在最大速度情况下做批判性的操作(critical operation at maximum speed),或者把python程序链接到文件库(libraries),这类文件库只能在二进制形式的条件下(例如一个销售商指定的图形文库vendor-specific graphics library)。一旦你开始链接(hooked),你就可以连接上python的解释器开始一个用C语言来编制的应用,并且把这个语言看作为对于该应用的一个扩展或者指令性的语言。

顺便提一下,这个语言是因为BBC展示出“巨蟒飞行马戏团”而起的一个名字,它和爬行动物(reptile)完全没有关系。但和这个巨蟒短剧skits在文件上相关不仅被允许,而且还鼓励这么做!

既然你已经被这个有关python的东西触动了,那么就该在更为细节的方面来检验检验这个语言。学习一个语言最好的方法就是使用这个语言,这本导引手册邀请你把python的解释器带上,就像你读书一样来使用这个解释器。

下一节,我们将解释如何使用这个解释器。这是相当世俗普通的信息(mundane),但随后所显示的样例将是本质的。
导引手册的其余部分介绍了python语言各种各样的特性,并且用系统的实例,从简单的表达式,陈述句和数据库开始,接之以函数和模块,最后会接触到高级一些的概念,例如“例外”(exception)和用户定义的类(user-defined classes)。

2、使用python解释器
2.1.启动解释器invoking the interpreter
Python解释器通常安装在那些有python语言可用的机器上;当你打下python.3.8的指令时,放在unix shell 寻找通道上的解释器就有可能启动。因为解释器安装有一个目录选择的问题,放在任何地方都是可能的,一般放在你经常使用的某个目录上。
若你的py解释器安装在Windows平台,python来自微软商店,那个python3.8指令就是可用的。如果你安装了py.exe launcher,使用py指令也是可行的。可看附记:其他方式启动python需设置环境变量。
在提示符窗口,打下end-of-file字符(或者在Unix,按Control-D,在Windows,按Contral-Z)就会使得解释器在零退出状态退出。如果这样做没有反应,你可以通过打出以下指令:quit()退出解释器。
解释器的在线编辑特点包括交互式编辑,历史替换和系统上的编码完善,系统支持GNU(“GNU” 这个名字是 “GNU’s Not Unix” 的递归首字母缩写词。“GNU” 的发音为 g’noo,一个自由软件网)在线文库。也许最迅速的检查在线指令是否被支持是打出指令Control-P,也就是你得到的python提示符首字母P。如果指令有反应,那么就有在线编辑指令;可看附录:交互式输入编辑和历史替换。如果没有反应,或者如果^P打出一些参数,那么在线编辑指令就是不可用的,你能够使用退格(backspace)移掉在线的那些字符。
这个解释器的操作有点类似于Unix shell(shell 是提供到 UNIX 操作系统的接口的一个命令编程语言):当调用连接到一个tty设备(tty是终端设备的统称,Teletypes电传打字机缩写)的标准输入之时,它交互式地阅读和处理指令。而当调用一个文件名参数或者一个文件作为标准输入时,它从那个文件读取和处理脚本。
启动解释器的第二种方式使用指令python -c command [arg] …,它处理指令中的陈述,类似于shell的-c选择。因为python陈述经常含有空格或者其它的字符,特别是那些用于shell的字符。它通常被告知使用单引号来框住指令。
有些python模块也被用来作为脚本(scripts)。这些模块可以使用指令python -m module [arg] …来启动,这些模块处理来自模块的源文件,似乎是,你得在指令行中拼出它们的全名。
当一个脚本文件被使用的时候,能够运行这个脚本有时候很有用,你然后就进入交互模式。这可以在这个脚本前通过passing -i来做到。
所有在线指令选择都被描述在“在线指令和环境”中(command line and environment)。

2.1.1. 参数通过
当对于解释器有所知的时候,脚本名称和附加的参数随后就转变为一个字符串列表(list)并指派给在sys模块中的参数变元。你可以通过处理import sys代码登录到这个列表。列表的长度至少是一个。当既无脚本又无参数的时候,sys.argv(0)就是一个空字符串,当那个脚本名称被定为‘-’(意味着标准输入)可以表示为‘-’。当使用-c指令时,sys.argv(0)就表示为‘-c’。当使用 -m模式时,sys.argv(0)就被设为那个位置的模式的全名。在指令 -c 或者 -m模块之后发现的选择不被python解释器的选择处理所消耗,但留在sys.argv之中,而这个sys.argv就是用来处理这个指令或者模式的模块。

2.1.2.当指令从一个终端读取的时候,解释器就被说成使用的交互模式。在这个模式中,它用基本的提示词提示了下一个提示,通常用比指号(>>>)更大一些的指号表示,再用3个缺省点线(…)来表示继续线,从而提示了第二个提示。而解释器在打印出第一个提示之前,打印出欢迎信息页面,该页面表述了解释器的版数,还有版权注意事项。
如下所述:
$ Python3.8
Python 3.8(default, august 20 2020,29:25:20)
[GCC 4.8.2]on linux
Type “help”, “copyright”, “credits” or “license” for more information.

在这里插入代码片Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:37:02) [MSC v.1924 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.

当进入一个多线构造的时候,连续线是必须的。作为一个实例,请看这个if陈述:

在这里插入代码片>>> the_world_is_flat = True
>>> if the_world_is_flat:
...    print("Be careful not to fall off!")
...
Be careful not to fall off!

the_world_is_flat = True
if the_world_is_flat:
… print(“Be careful not to fall off!”)

Be careful not to fall off!
(注意上表首行中的下划线,这大概是所谓多线。也注意第三行第四行的连续线。打印指令后的文字要放在括号之中。Print指令自然要缩格到if之后。)
有关交互模式的更多内容,请看交互模式。Interactive Mode

2.2.解释器与其环境
2.2.1.源代码编码
通过缺省,python源文件处理为在UTF-8中编码。在那种编码中,世界上大多数语言的字符都可以用字符串文字,标识符identifiers和注释comments—,虽然标准文库仅使用ASCII字符表示标识符,而且,这个语言也遵守任意轻便编码都要遵守的一个约定。为了合适地展示所有这些字符,编辑人员必须认知该文件就是UTF-8,它必须使用一种支持所有在文件中的字符所用到的字形字体(font)
为了表明一种编码而不是缺省的那一种,一个特别的注释行应该加在文件的第一行。其语法学如下

-- coding: encoding --

其中编码是被python支持的有效代码中的一种。
例如,为了表明Windows-1252编码将被使用,你的源代码的第一行就应该是

-- coding: cp1252 --

第一行规则的一个例外是,当源代码用一个unix“sheban“行的时候。在这种情况下,编码声明应该加进该文件的第二行。例如:
#!/usr/bin/env python3

-- coding: cp1252 --

1.脚注:在Unix上,python3.x解释器用可处理的名称python缺省不安装,所以就不会与同时安装python2.x可处理相冲突。

猜你喜欢

转载自blog.csdn.net/weixin_41670255/article/details/108235879