2011-08-12 61 views
1

我试图通过练习11学习Python难题,并遇到了一些问题。下面是我一直使用geedit(这方面的工作在PC上)学习Python难题练习11

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显示原始输入键入到.py文件,他们呈现出来的是“”上最后一行我做错了什么?

+0

如果这里列出的答案之一是你要找的,你能接受吗? –

回答

3

我想你可能会误解raw_input的行为。 raw_input('27')表示“打印27,然后等待用户的输入。” 27不是默认值,它只是一个提示。如果您在不输入任何内容的情况下回车,则age的值将为'',而不是'27'

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) 
+0

不过,谢谢! – Charles

6

raw_input's argument用作文本提示。

你可以这样做:

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) 
+0

另请注意,您应该使用format()而不是%来传递字符串中的变量。 –

+0

不应该使用'is'来进行字符串比较。 – dmedvinsky

0

在这个练习中,你是不是想键入你的年龄,高度等等放到代码中的括号中。相反,留括号空白的捷思锐在他的例子做:

age = raw_input() 

然后,当你在终端运行程序时,你输入你的年龄当记者问。与其他变量相同。所以最后,当提示回答问题时,程序会打印出您在终端中输入的值。

0

用zed shaw的代码示例,他特别说:“无论如何输入此代码并使其完全相同”。当你使用raw_input()时,你要求用户输入他们的信息,因此你不需要添加信息。当程序执行时,输入“精确”,因为它会提示用户输入一个值,任何值将被输出到控制台。