Learn Python the Hard Way 中文版

exercise12.提示别人

当你输入raw_input() 的时候,你需要键入 () 也就是“括号(parenthesis)”。这和你格式化输出两个以上变量时的情况有点类似,比如说 "%s %s" % (x, y) 里边就有括号。对于 raw_input 而言,你还可以让它显示出一个提示,从而告诉别人应该输入什么东西。你可以在 () 之间放入一个你想要作为提示的字符串,如下所示:

y = raw_input("Name? ")

这句话会用 “Name?” 提示用户,然后将用户输入的结果赋值给变量 y。这就是我们提问用户并且得到答案的方式。

也就是说,我们的上一个练习可以使用 raw_input重写一次。所有的提示都可以通过raw_input 实现。

age = raw_input("How old are you? ")
height = raw_input("How tall are you? ")
weight = raw_input("How much do you weigh? ")

print "So, you're %r old, %r tall and %r heavy." % (
    age, height, weight)

你看到的结果

$ python ex12.py
How old are you?  38
How tall are you?  6'2"
How much do you weigh?  180lbs
So, you're '38' old, '6\'2"' tall and '180lbs' heavy.

附加题

  1. 在命令行界面下运行你的程序,然后在命令行输入 pydoc raw_input 看它说了些什么。如果你用的是 Window,那就试一下 python -m pydoc raw_input
  2. 输入 q 退出 pydoc
  3. 上网找一下 pydoc 命令是用来做什么的。
  4. 使用 pydoc 再看一下 open, file, os, 和 sys 的含义。看不懂没关系,只要通读一下,记下你觉得有意思的点就行了。

常见问题

Q:我运行pydoc 的时候,为什么会遇到这个报错invalid syntax?

你没有在命令行里执行pydoc; 你是不是在启动python后执行的?退出Python试试吧.

Q:我执行pydoc的时候,我遇到一个提示pydoc 不是内部或外部命令

有一些windows上的Python版本没有提供这个命令,你可以跳过这个附加练习,当你需要阅读Python 文档的时候,你在网上搜索就可以了。

Q:为什么用%r而不是%s?

请务必记住 %r 会原样输出你输入的每一个字符,而%s是用来显示你的输入的。下次,我不会再回答相同的问题。这是大家重复问到次数最多的问题,但是一遍一遍问相同的问题,说明你没有记住我讲过的内容。

Q:为什么不能这样输入"How old are you?" , raw_input()?

你觉得它会生效的, 但是Python认为这种写法是不合法的. 我能告诉你的也只能是你不能这样么写。