笨办法学Python(十一)
习题 11: 提问
我已经出过很多打印相关的练习,让你习惯写简单的东西,但简单的东西都有点无聊,现在该跟上脚步了。我们现在要做的是把数据读到你的程序里边去。这可能对你有点难度,你可能一下子不明白,不过你需要相信我,无论如何把习题做了再说。只要做几个练习你就明白了。
一般软件做的事情主要就是下面几条:
1. 接受人的输入。
2. 改变输入。
3. 打印出改变了的输入。
到目前为止你只做了打印,但还不会接受或者修改人的输入。你也许还不知道“输入(input)”是什么意思。所以闲话少说,我们还是开始做点练习看你能不能明白。下一个习题里边我们会给你更多的解释。
1 #-- coding: utf - 8 -- 2 print "How old are you?", 3 age = raw_input() 4 print "How tall are you?", 5 height = raw_input() 6 print "How much do you weigh?", 7 weight = raw_input() 8 9 print "So, you're %r old, %r tall and %r heavy." % ( age, height, weight)
Note
注意到我在每行 print 后面加了个逗号(comma) , 了吧?这样的话 print 就不会输出新行符而结束这一行跑到下一行去了。
你应该看到的结果:
加分习题
1. 上网查一下 Python 的 raw_input 实现的是什么功能。
2. 你能找到它的别的用法吗?测试一下你上网搜索到的例子。
3. 用类似的格式再写一段,把问题改成你自己的问题。
4. 和转义序列有关的,想想为什么最后一行 '6\'2"' 里边有一个 \' 序列。单引号需要被转义,从而防止它被识别为字符串的结尾。有没有注意到这一点?
习题练习
1.
参考:http://www.cnblogs.com/testing-way/p/5484122.html
1 a = raw_input ("raw_input: ") 2 b = raw_input (" ") 3 c = raw_input () 4 d = raw_input ()
Python2 的 raw_input 得到的是 str 类型。参考:http://www.cnblogs.com/hanggegege/p/5840005.html
raw_input 与 input 的区别:
这两个函数都可以读取用户的输入,不同的是input()函数要求用户输入有效的表达式,而raw_input()函数将用户输入的任意类型数据都转换为一个字符串。
当输入纯数字时
>>>raw_input返回字符串类型,string
>>> input返回的是数值类型,如int、float
输入字符串表达式时
>>> input() 会计算字符串中的数字表达式,而raw_input()不会
括号里没有字符:
括号里有字符:
可见 input 必须输入字符且得符合标准。
从 raw_input() 到 input()Python 2.X :
在2.x版本中:
raw_input() 会从标准输入(sys.stdin)读取输入值并返回一个字符串,且尾部换行符从末尾移除。
input()不同,需要输入有效的表达式,如3+8,'abc'。
在Python 3中:
将raw_input()重命名为 input(),这样一来,无需导入也可从标准输入获得数据。如需要保留2.X版本的 input() 功能, 可以使用 eval_r(input()), 效果基本相同。