Python 错误与“;未调整大小对象的len();

Python 错误与“;未调整大小对象的len();,python,Python,这是我的密码: TestV = int(input("Data: ")) print TestV print len (TestV) 事实上,它会打印TestV,但当我试图获取它的长度时,它会给出错误“unsized object的len()” 我试过更简单的方法,比如 >>> x = "hola" >>> print len(x) 4 而且它工作得很好。有人能解释一下我做错了什么吗?类型int没有长度 在 TestV=int(输入(“数据”)如果要计算位

这是我的密码:

TestV = int(input("Data: "))
print TestV
print len (TestV)
事实上,它会打印
TestV
,但当我试图获取它的长度时,它会给出错误
“unsized object的len()”

我试过更简单的方法,比如

>>> x = "hola"
>>> print len(x)
4

而且它工作得很好。有人能解释一下我做错了什么吗?

类型int没有长度



TestV=int(输入(“数据”)
如果要计算位数,需要将其转换回字符串(请注意,减号(
-
)也将计为一):

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

TestV = input("Data: ")
print len (TestV)
TestV = int(TestV)
注意,与后一种情况相比,它还将计算尾随空间等

编辑:根据您的评论

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

import re

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

你期望整数的长度是多少?!错误消息说明了一切:您所做的错误是尝试获取未大小对象的长度。谢谢!这很有效。但现在我有另一个问题。如果假设我在处理字符串,为什么它不能识别数字和字符混合?比如“ac4ft6”,谢谢你的解释,但现在我有另一个问题。如果假设我在处理字符串,为什么它不能识别数字和字符混合?比如“ac4ft6”
import re

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