不支持的操作数类型:'str' 和 'int' 之间的 /
我刚开始学习Python,正在学习一些基础知识。我想知道为什么会出现这个错误。我的代码是:
Hours = raw_input ("How many Hours you worked for today : ")
minutes = (Hours * 60)
Percentage = (minutes * 100) / 60
print "Today you worked : ", "percentage"
4 个回答
1
你的值 Hours
是一个字符串。要把它转换成整数,
Hours = int(raw_input("How many hours you worked for today : "))
在Python中,值有特定的 类型。即使一个字符串里面只包含数字,你还是不能把它当成数字用,必须告诉Python去转换一下。这和一些其他语言,比如Javascript、Perl和PHP不一样,那些语言会在需要的时候自动帮你转换类型。
2
Hours
是以字符串的形式读取的。首先需要把它转换成整数:
Hours = int(raw_input("..."))
注意,Hours*60
这样写是因为它把 Hours 和自己连接了 60 次。但这显然不是你想要的结果,所以你必须在第一时间把它转换成 int
类型。
7
你需要把你的 Hours
变量转换成数字,因为 raw_input()
返回的是字符串:
Hours = int(raw_input("How many hours you worked for today: "))
之所以会在这么晚的时候出错,是因为 *
这个符号在字符串和整数之间是有定义的:它会把字符串“乘”以整数的值。所以如果你在提示符下输入 7
,你会得到:
Hours = '7'
minutes = '777777....77777' # 7 repeated 60 times
Percentage = '77777....77777' / 60 # 7 repeated 60*100 = 6000 times
所以当它尝试用 /
去计算一个字符串和一个数字时,最后就会出错。