《笨办法学Python》 第12课手记
本节课接着讲raw_input这个函数,其后面的括号里的字符串可以显示在屏幕上。
原代码如下:
age = raw_input("How old are you? ")
height = raw_input("How tall are you? ")
weight = raw_input("How much do you weight? ")
print "So,you're %r old, %r tall and %r heavy." %(
age,height,weight)
请注意最后一行,age前必须空一格,表示该行代码是上一行的一部分。
代码中age、height、weight都是变量名,使用raw_input输入数据后,就立即给这些变量赋值,同时把输入的以字符串显示在显示器上。再使用格式化字符%r将其混合字符输出。
Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。
结果如下:
有趣的是这个结果与书上的结果有些偏差,书上前三行语句和数据之间都有空格而该结果没有。
再看一个结果:
空格出现了,代码并没有改变,空格是在输入数据的时候打进去的,也就是说使用raw_input时,如果输入的第一个数据是空格(空格是一个字符型的数据)的话,解释器将忽视空格录入空格后的内容。
本节课涉及的知识:
记住 %r 是 debug 专用,它显示的是原始表示出来的字符,而 %s 是为了显示给用户。前面也说过多次了一定要牢记。
在加分题里,有如下代码:
python -m pydoc raw_input
结果如下:
pydoc是Python自带的模块,主要用于从python模块中自动生成文档,这些文档可以基于文本呈现的、也可以生成WEB 页面的,还可以在服务器上以浏览器的方式呈现,也可以使用pydoc命令查看函数介绍。
这段代码的意思就是查看函数raw_input的介绍。(上一节已经用中文介绍过了,这里不再赘述)
->string表示的是这个函数处理的是字符串。该行下面英文的翻译如下:
从标准输入中读取一个字符串。 跟在后面的新的一行将会被剔除。
如果用户输入了文字流结尾命令,(Unix中是ctrl+D,windows是ctrl+z+return),就报错
(EOFError)。
在Unix中,GNU readline将会被使用(如果可用的话)。至于提示字符串,如果给出了,就在读取后面的新字符串之前打印出来。
EOF是endoffile的缩写,表示”文字流”(stream)的结尾。这里的”文字流”,可以是文件(file),也可以是标准输入(stdin)
至于Unix(windows和linux系统的核心)和GNU readline(GNU readline是一个开源的跨平台程序库,提供了交互式的文本编辑功能)我需要学习过操作系统这门课程才能解释,在在这里做个标记,日后再补充。