"不要一声不响地埋葬掉你的困惑.你有问题?很好.高高兴兴地深入地研究它吧."--Ven.Henepola Gunaratana
1.1Diving In
关于编程的书籍通常会以一大堆枯燥的基础知识章节开头,直到最后才会去构建一些有用的东西.现在让我们跳过这些.这里就有一个完整的,可以运行的Python程序.你可能对它毫不理解,不过不用担心,你将会逐行的来研究它.在此之前,先通读一遍,尽可能理解哪怕只是一点点.
现在让我们在命令行来执行这个程序.在Windows环境下,它可能看起来像这样:
在Mac OS X 或者linux下,它看起来可能像这样:
刚刚发生了什么事情?你已经执行了你的第一个Python程序.你在命令行下调用了Python的解释程序,并把希望它解释的Python脚本的名字传了过去.该脚本定义了一个函数approximate_size().这个函数获得一个精确的以byte为单位文件大小,并计算得出一个"更易读"(但是近似精确)的文件大小.(在windows的文件管理器中或者MacOS X的Finder或者Linux的Nautilus,Dolphin,thunar中,你可能曾经看到过这个.你以多列列表的形式显示一个文件夹或者多个文件时,你将看到一个表格,它由文档图标,文档名称,大小,类型,最后修改日期等组成.如果一个文件夹包含一个1093-bytes的名称为TODO的文件,你的文件管理器不会显示TODO 1093 bytes,它会显示像TODO 1KB之类的东西.这正是函数approximate_size()要做的事情.)
目光放到脚本的底部,你会发现两个调用print(approximate_size(arguments)).这些就是函数调用--第一个调用直接调用approximate_size()函数并传给它一些参数,然后将它的返回值直接传给函数print().函数print()是内置的,所以你不会看到它的具体声明.你可以在任何地方,任何时间使用它.(内置函数有很多,它们中的一些被划分到了不同的模块里.
那么,为什么在命令行运行脚本程序你都会得到相同的输出?我们将来研究这些内容.首先让我们来认真看一下函数approximate_size().