我是Python新手,正在学习一些基础知识。我想知道为什么我会收到这个错误。代码是:
Hours = raw_input ("How many Hours you worked for today : ")
minutes = (Hours * 60)
Percentage = (minutes * 100) / 60
print "Today you worked : ", "percentage"
答案 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()
返回一个字符串。在继续之前将其转换为数字(因为将字符串乘以整数是一个有效的操作)。