/:'str'和'int'不支持的操作数类型

时间:2011-10-02 07:37:52

标签: python

我是Python新手,正在学习一些基础知识。我想知道为什么我会收到这个错误。代码是:

Hours = raw_input ("How many Hours you worked for today : ")
minutes = (Hours * 60)
Percentage = (minutes * 100) / 60
print "Today you worked : ", "percentage"

4 个答案:

答案 0 :(得分:8)

您必须将Hours变量转换为数字,因为raw_input()会为您提供一个字符串:

Hours = int(raw_input("How many hours you worked for today: "))

这种失败的原因是因为*是为字符串和int定义的:它将字符串“乘以”int参数。因此,如果您在提示符下键入7,则会获得:

Hours = '7'
minutes = '777777....77777'        # 7 repeated 60 times
Percentage = '77777....77777' / 60 # 7 repeated 60*100 = 6000 times

因此,当它尝试对字符串和数字执行/时,它最终会失败。

答案 1 :(得分:1)

您的值Hours是一个字符串。要转换为整数,

Hours = int(raw_input("How many hours you worked for today : "))

Python中的值具有特定的类型,虽然字符串可能只包含数字,但如果不告诉Python将其转换为数字,您仍然无法将其视为数字。这与其他语言(如Javascript,Perl和PHP)不同,语言会在需要时自动转换类型。

答案 2 :(得分:1)

Hours被读作字符串。首先将其转换为整数:

Hours = int(raw_input("..."))

请注意Hours*60有效,因为它将小时与自身连接60次。但这肯定不是你想要的,所以你必须在第一时间转换为int

答案 3 :(得分:0)

raw_input()返回一个字符串。在继续之前将其转换为数字(因为将字符串乘以整数是一个有效的操作)。