通过艰难的方式学习Python 第11练习

1 投票
7 回答
1642 浏览
提问于 2025-04-16 23:30

我正在做《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)

撰写回答