1.交互。使用系统命令行、IDLE或者任何在你的平台上工作的其他方法,开始 Python交互命令行(>>>提示符),并输入表达式 “Hello world!” \textbf{“Hello world!”} “Hello world!”(包括引号)。这行字符串将会显示出来。这个练习的目的是确保已配置 Python 运行的环境。在某些情况下,你也许需要首先运行一条cd shell命令,输入Python可执行文件的绝对路经,或者增加Python可执行文件的路径至PATH环境变量。如果想要的话,你可以在 . c s h r c .cshrc .cshrc或 . k s h r c .kshrc .kshrc文件中设置PATH,使Python在UNIX系统中永久可用;在Windows上,环境变量GUI通常就是你想要的。
print('"Hello World!"')
2.程序。使用你选择的文本编辑器,写一个简单的包含了单个打印 “Hello module world!" \textbf{“Hello module world!"} “Hello module world!"语句的模块文件,并将其保存为modulel.py。现在,通过使用任何你喜欢的启动选项来运行这个文件:在IDLE中运行,点击其文件图标,在系统shell的命令行中将其传递给Python解释器程序(例如python module1.py)等。
G:\code>py -3 module1.py
"Hello module world!"
3.模块。紧接着,开始一个Python交互命令行(提示符),并导入你在练习2中所写的模块。试着将这个文件移动到一个不同的目录,并再次从其原始的目录导入 (也就是说,当导入时在原来的目录运行 Python)。发生了什么? (提示:在原来的目录中是否仍然有一个module1.pyc 的字节码文件,或者在_pycache_子目录下有类似的文件?)
pycache 子目录下存在module1.pyc字节码文件
移出module1.py后
import module1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'module1'
当移入module1.py后,导入正常
>>> import module1
"Hello module world!"
4.脚本。如果你的平台支持的话,在module1.py模块文件的顶行增加一行 #! ,赋予这个文件可执行的权限,并作为可执行文件直接运行它。在第一行需要包含什么? #!一般在UNIXLinux和UNIX类平台(如MacOSX)有意义,如果你在Windows平台上工作,遇过“开始 → \rightarrow →运行”对话框或类似的操作,然后试着在命令行窗口不在其前边加“python”这个词而直接列出其名字来运行这个文件(这在最近版本的Windows上有效)。如果你正在使用随着操作系统安装的Python3.3或Windows 启动器,改变脚本的 #! 代码行进行实验,来启动你可能在电脑上已安装的不同Python版本。
G:\code>python module1.py
"Hello module world!"
G:\code>module1.py
^C
顶行添加 #! 底层添加input(),命令行输入文件名加后缀能看到输出界面(Windows)
5.错误和调试。在Python交互命令行中,试着输入数学表达式和赋值。首先输入2**500和1/0,并且像我们在本章前面所做的那样引用一个未定义的变量名。发生了什么?
你也许还不知道,但是当你犯了一个错误,你正在做的是异常处理:从技术上正在触发所谓的默认打印标准错误信息的异常处理逻辑。如果你没有获得错误信息,那么默认的处理模块获得并作为回应打印了标准的错误信息。
异常总是和Python中的调试概念密切相关的。当你第一次开始的时候,Python关于异常的默认错误消息总是为你的错误处理提供尽可能多的支持,它们给出错误的原因,并且在代码中显示错误发生时所执行的行。
>>> 2**500
3273390607896141870013189696827599152216642046043064789483291368096133796404674554883270092325904157150886684127560071009217256545885393053328527589376
>>> 1/0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero
6.中断。在Python命令行中,输入:
L=[1,2] #Make a 2-item list
L.append(L) #Append L as a single item to itself
L #Print L: a cyclic/circular object
>>> l=[1,2]
>>> l.append(l)
>>> l
[1, 2, [...]]
7.文档。Python 库和语言手册