“unsized对象的len()出错”

时间:2015-02-18 17:21:36

标签: python

这是我的代码:

TestV = int(input("Data: "))
print TestV
print len (TestV)

事实上,它打印TestV,但当我尝试获取其长度时,它会给我错误"len() of unsized object"

我尝试过像

这样的事情
>>> x = "hola"
>>> print len(x)
4

它完美无缺。任何人都可以向我解释我做错了什么?

2 个答案:

答案 0 :(得分:3)

类型int没有长度。

您基本上将任何输入转换为int类型 TestV = int(input("Data: "))

答案 1 :(得分:3)

如果您想计算位数,则需要将其转换回字符串(请注意,减号(-)也会计为一个):

len(str(TestV))

或者只是等待将其转换为int:

TestV = input("Data: ")
print len (TestV)
TestV = int(TestV)

但请注意,与后一种情况相比,它也会计算拖尾空间等。

编辑:根据您的评论。

原因是包含其他字符的字符串可能不是数字,而是过程中的错误。如果您想过滤掉数字,可以使用正则表达式:

import re

x = input("Data: ")
x = re.sub("\D", "", x)
xv = int(x)