通过艰难的方式学习Python 第11练习
我正在做《Learn Python the Hard Way》的第11个练习,但遇到了一些问题。下面是我在用geedit编辑的.py文件中输入的内容:
print "How old are you?",
age = raw_input('27')
print "How tall are you?",
height = raw_input('5\'8"')
print "How much do you weigh?",
weight = raw_input('180lbs')
print "So, you're %r old, %r tall and %r heavy." %(age, height, weight)
我无法让%r显示原始输入,最后一行的输出总是变成'',我到底哪里出错了呢?
7 个回答
1
我想这就是你想要的效果吧?
1 print "How old are you?",
2
3 age = raw_input()
4
5 print "How tall are you?",
6
7 height = raw_input()
8
9 print "How much do you weigh?",
10
11 weight = raw_input()
12
13 print "So, you're %d old, %s tall and %d heavy." %(age, height, weight)
3
我觉得你可能对 raw_input
的行为有些误解。raw_input('27')
的意思是“打印27,然后等待用户输入。”这里的27并不是一个默认值,只是一个提示。如果你直接按回车而不输入任何东西,那么 age
的值将会是 ''
,而不是 '27'
。
6
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)
如果你想提供默认值的话,可以这样做:
age = raw_input("How old are you? ")
height = raw_input("How tall are you? ")
weight = raw_input("How much do you weigh? ")
age = age if age is not '' else '27'
height = height if height is not '' else '5\'8"'
weight = weight if weight is not '' else '180lbs'
print "So, you're %r old, %r tall and %r heavy." % (age, height, weight)