当我运行我的脚本时,我得到一个TypeError
。
这是我的所有代码:
lawnCost = ("£15.50")
lengthLawn = float(input("Lengh of lawn: "))
widthLawn = float(input("Width of lawn: "))
totalArea = (lengthLawn) * (widthLawn)
print (("The total area of the lawn is ")+str(totalArea)+str("m²"))
totalCost = (totalArea) * float(15.50)
print ("The cost of lawn per m² is £15.50")
print ("The total cost for the lawn is ")+str(totalCost)
这是我得到的错误:
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
如果有人能帮我指出方向很好,那就谢谢你。
此外,如果它有助于我在Windows 7 x64上运行Python 3.3。
答案 0 :(得分:6)
在最后一行中,str(totalCost)
需要在里面 print
的括号内
print ("The total cost for the lawn is "+str(totalCost))
这是因为print
在Python 3.x中返回None
。所以,你的代码实际上是在尝试这样做:
None+str(totalCost)
此外,如果您需要它,下面是您的脚本版本,它更清洁,更有效:
lawnCost = "£15.50"
lengthLawn = float(input("Lengh of lawn: "))
widthLawn = float(input("Width of lawn: "))
totalArea = lengthLawn * widthLawn
print("The total area of the lawn is {}m²".format(totalArea))
totalCost = totalArea * 15.50
print("The cost of lawn per m² is £15.50")
print("The total cost for the lawn is {}".format(totalCost))
基本上,我做了三件事:
删除了不必要的括号和print
之后的额外空格。
删除了对str
和float
的不必要电话。
合并使用str.format
。