【笨办法学Python】习题11:打印出改变了的输入
print "How old are you?",
age = raw_input()
print "How tall are you?",
height = raw_input()
print "How much do you weigh?",
weight = raw_input()
print "So, you're %r old, %r tall and %r heavy." % (
age, height, weight)
Note
每行 print 后面加了个逗号(comma) , 这样的话 print 就不会输出新行符而结束这一行跑到下一行去了。
结果
$ python ex11.py
How old are you? 35
How tall are you? 6'2"
How much do you weigh? 180lbs
So, you're '35' old, '6'2"' tall and '180lbs' heavy.
$
加分习题
- 上网查一下 Python 的 raw_input 实现的是什么功能。
- 你能找到它的别的用法吗?测试一下你上网搜索到的例子。
- 用类似的格式再写一段,把问题改成你自己的问题。
- 和转义序列有关的,想想为什么最后一行 '6'2"' 里边有一个 ' 序列。单引号需要被转义,从而防止它被识别为字符串的结尾。有没有注意到这一点?
习题 12: 提示别人
当你键入 raw_input() 的时候,你需要键入 ( 和 ) 也就是“括号(parenthesis)”。这和你格式化输
出两个以上变量时的情况有点类似,比如说 "%s %s" % (x, y) 里边就有括号。对于raw_input 而言,你还可以让它显示出一个提示,从而告诉别人应该输入什么东西。你可以在 () 之间放入一个你想要作为提示的字符串,如下所示:
y = raw_input("Name? ")
这句话会用 “Name?” 提示用户,然后将用户输入的结果赋值给变量 y。这就是我们提问用户并且得到答案的方式。
上一个练习可以使用 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? 35
How tall are you? 6'2"
How much do you weight? 180lbs
So, you're '35' old, '6'2"' tall and '180lbs' heavy.
$
加分习题 - 在命令行界面下运行你的程序,然后在命令行输入 pydoc raw_input 看它说了些什么。如果你用的是 Window,那就试一下 python -m pydoc raw_input 。
- 输入 q 退出 pydoc。
- 上网找一下 pydoc 命令是用来做什么的。
- 使用 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 不这么认为。