Python Len函数未返回字符串的正确值

Python Len函数未返回字符串的正确值,python,string-length,Python,String Length,所以我试着调用一个编码消息的长度,然后将该长度除以3,每3个字符代表一个字母。信息如下: 10311132-10710510810832-121111117114115101108102 破折号设置为直接放在空格或字母a、b或c之后,因为ord函数仅将这些字符转换为2位值,并且程序要求每个字母有3位数字。我有以下代码: message = (10311132-10710510810832-121111117114115101108102) message = str(message) leng

所以我试着调用一个编码消息的长度,然后将该长度除以3,每3个字符代表一个字母。信息如下:

10311132-10710510810832-121111117114115101108102
破折号设置为直接放在空格或字母a、b或c之后,因为ord函数仅将这些字符转换为2位值,并且程序要求每个字母有3位数字。我有以下代码:

message = (10311132-10710510810832-121111117114115101108102)
message = str(message)
length = len(message)
print(length)
即使字符串是48个字符,代码也会返回25个字符。这是为什么?我如何修复它?

因为您已将消息初始化为int。您可以通过在其周围加引号来修复此问题:

message = ('10311132-10710510810832-121111117114115101108102')
此时,将消息转换为字符串之后,将在执行减号操作后对其进行转换。例如:

>>> message = (10311132-10710510810832-121111117114115101108102)
>>> message
-121111117124825601607802
作为旁注,作业周围的括号是不必要的。您只需执行以下操作:

message = '10311132-10710510810832-121111117114115101108102'
在第一行

消息=10311132-10710510810832-121111114115101108102


右侧的表达式已计算并存储为-121111117124825601607802,表示为字符串,长度为25个字符。

不幸的是,我无法将该值放入“”,因为该数字由变量确定。所以你输入一个短语或消息,它用ord函数对其进行编码。我不明白你在这里得到的是什么。你能分享完整的代码来重现你的错误吗?