原文链接:http://learnpythonthehardway.org/book/ex11.html
现在是时候加快我们的进度了,我已经知道你做了很多的打印输出的练习让你能够输出一些简单的东西,但是对这些简单的东西现在也有些厌烦了。我们现在要做的是在你的程序中得到一些数据。这可能有点小棘手,因为你必须做的两件事情立刻看起来好像没有什么意义,但是请相信我无论如何按照我说的做。当你做过一些练习后你就会知道它的意义所在了。
大多数、的软件都会做下面几件事情:
1、从某人那里获取到某种输入数据。
2、改变接收到的数据。
3、打印一些输出来显示这些数据是怎么被改变的。
到目前为止你只知道打印输出,你还不知道怎样来从某人那里获取输入数据,或者改变这些数据。你甚至可能连输入是什么意思,所以相比去向你讲解它,我更喜欢让你先做个 练习看看你是否能明白其中的含义。在下一节练习中我们会做更多的解释。
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)
注意:
注意我在每个print行的最后面都加了“,”(逗号),这是为了让print不会因换行符结束输出而是继续在下一行接着输出。
你可以看到如下结果:
E:\>python ex11.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、上网查找Python中的raw_input的作用。
2、你能找到其他使用raw_input的方法吗?尝试一下你找到资料中的例子。
3、写一个像我这样的形式来问一下其它问题。
4、联系一下转义字符的概念,试着找出为什么在输出的最后一行的 '6\'2"' 中有 \' 序列。弄明白怎样的的单引号需要被转义而不被当做字符串结束符?
学生遇见的常见问题:
我怎样才能从别人那得到一个数字来做数学运算?
答:这个问题就有点超前了,但是你可以试一下 x = int(raw_input()) 这个表达式,它可以将 raw_input() 得到的字符串用int()转换成一个数字。
我在问我身高的那一行输入了像这样的:raw_input("6 '2") 但是无效。
答:你不应该在括号里面输入你的身高值,你应该直接在命令行终端中输入。首先,你应该回去确保你的代码和我的一样,接着,运行这个脚本,当它暂停的时候在你的键盘上输入你的身高值。就是这么简单就行了。
为什么你要在第八行分两行来写而不是就放在一行中呢?
答:那是因为一行代码应该少于80个字符长,这只是Python中一种受人欢迎的的编码风格。如果你喜欢也可以把它们放在一行中。
input() 和 raw_input() 有什么区别?
答:input()函数会将你输入的东西试着转换成符合Python语法的东西,但使用它会有安全问题,所有你应该避免使用它。
当我的字符串打印出来的时候在它的前面有个字母 u,就比如:u'35' 。
答:那是Python 告诉你的字符串是Unicode编码。使用 %s 来格式化输出你就可以看到正常输出了。