【问题标题】:Unorderable Types: int() < str()无序类型:int() < str()
【发布时间】:2015-05-23 15:29:23
【问题描述】:

我收到错误“Unorderable Types: int()

end = input('enter total numbers:')
int(end)
total = 0
float(total)
number = 0
float(number)

while number < end:
    add = input('enter number to add:')
    total = total + add
    number = number + 1

print (total / end) 

【问题讨论】:

  • 如果Martjin的回答有帮助,你应该考虑接受它。

标签: python python-3.x


【解决方案1】:

int(end) 返回新的整数,但你忽略了它:

end = input('enter total numbers:')
int(end)

将结果分配回end

end = input('enter total numbers:')
end = int(end)

您在调用float() 时犯了同样的错误,但在这里不会导致任何错误。如果numbertotal 必须是浮点数,只需使用浮点字面量即可:

total = 0.0
number = 0.0

但是当使用 / 运算符时,total 是浮点数还是整数都没有关系。

你还需要转换add:

add = input('enter number to add:')
add = int(add)

您可以将int() 调用与input() 调用结合起来:

end = int(input('enter total numbers:'))

add = int(input('enter number to add:'))

无论如何,float()int() 都不是类型声明; Python 没有像 C 或 Java 这样的语言那样的类型声明。变量是无类型的;你可以在endtotalnumber 中放任何东西,Python 不会眨眼。

相反,您使用int()float()转换不同类型的对象;比如字符串转换成整数,或者整数转换成浮点数,或者浮点数转换成整数。

【讨论】:

  • 谢谢。我不必为 float(total) 或 float(number) 这样做吗?
  • @G3ck0:不,因为在这里它们是浮点数还是整数都没有关系。您也可以修复它,但您也可以直接使用。 total = 0.0number = 0.0 代替。
猜你喜欢
  • 1970-01-01
  • 2013-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-08
  • 2014-08-14
相关资源
最近更新 更多