习题 12: 提示别人 ***************************** 当你键入 ``raw_input()`` 的时候,你需要键入 ``(`` 和 ``)`` 也就是“括号(parenthesis)”。\ 这和你格式化输出两个以上变量时的情况有点类似,比如说 ``"%s %s" % (x, y)`` 里边就\ 有括号。对于 ``raw_input`` 而言,你还可以让它显示出一个提示,从而告诉别人应该输入\ 什么东西。你可以在 ``()`` 之间放入一个你想要作为提示的字符串,如下所示: .. code-block:: python y = raw_input("Name? ") 这句话会用 “Name?” 提示用户,然后将用户输入的结果赋值给变量 ``y``\。这就是我们\ 提问用户并且得到答案的方式。 也就是说,我们的上一个练习可以使用 ``raw_input`` 重写一次。所有的提示都可以通过 ``raw_input`` 实现。 .. literalinclude:: ex/ex12.py :linenos: 你应该看到的结果 =================== .. literalinclude:: ex/ex12.txt :language: console 加分习题 ============ 1. 在命令行界面下运行你的程序,然后在命令行输入 ``pydoc raw_input`` 看它说了些什么。\ 如果你用的是 Window,那就试一下 ``python -m pydoc raw_input`` 。 2. 输入 ``q`` 退出 pydoc。 3. 上网找一下 ``pydoc`` 命令是用来做什么的。 4. 使用 pydoc 再看一下 ``open``, ``file``, ``os``, 和 ``sys`` 的含义。看不懂没\ 关系,只要通读一下,记下你觉得有意思的点就行了。 常见问题回答 ========================== 运行 ``pydoc`` 时显示 ``SyntaxError: invalid syntax``\。 你没有从命令行运行 ``pydoc``\,很可能是从 ``python`` 里边运行的。退出 ``python`` 试试。 我的 ``pydoc`` 为什么不会暂停? 有时文档很短,一页屏幕就显示完了,这时 ``pydoc`` 就不会暂停。 运行 ``pydoc`` 是看到 ``more is not recognized as an internal``\。 有的版本 Windows 中没有这个命令,也就是说你没法用 ``pydoc`` 了。跳过这些加分习题,上网\ 去搜索 Python 文档吧。 ``%r`` 和 ``%s`` 该用哪个? 记住 ``%r`` 是 debug 专用,它显示的是原始表示出来的字符,而 ``%s`` 是为了显示给用户。\ 这个问题以后我就不再回答了,你要牢牢记住。这个问题是人们重复问的最多的问题,如果同一个问题\ 要问很多遍,那说明你没记住你该记住的东西。别问了,现在我要求你必须记住。 写成 ``print "How old are you?" , raw_input()`` 为什么不行? 你觉得可以,但 Python 不这么认为。我唯一能给你的答案是:这样就是不行。