uTypeError:不支持的操作数类型 - :'str'和'str'

时间:2012-02-29 17:23:56

标签: python

我收到此错误:

  

uTypeError:不支持的操作数类型 - :'str'和'str'

从这段代码:

print "what is your name?"  
x=raw_input()
print "Are you woman or man?"
y=raw_input()
print "how old are you?"
z=raw_input()
print "at what age did you or will you first travel in an plane?"
f=raw_input()

print "This is a story about a ",y," named ",x
print z-f ,"years ago",x, " first took an airplane."
print " the end"

为什么?

2 个答案:

答案 0 :(得分:3)

您的变量zf是字符串。 Python不支持从另一个字符串中减去一个字符串。

如果要显示数字,则必须将它们转换为浮点数或整数:

print int(z) - int(f),"years ago",x, " first took an airplane."

首先是这些字符串的原因是因为raw_input always returns a string

答案 1 :(得分:2)

raw_input()返回一个字符串,所以基本上你最终会得到这个:

print '20'-'11'

由于您无法从另一个字符串中减去一个字符串,因此需要先将它们转换为数字。

试试这个:

z = float(raw_input())
...
f = float(raw_input())

其次,使用描述性变量名而不是x,y,z和f,如下所示:

age = float(raw_input())
...
firstPlaneTravelAge = float(raw_input())

print age-firstPlaneTravelAge, ...

另请注意,此代码未经验证,如果用户输入的内容不是数字,则会崩溃。