ord()python函数,返回constant lenght

ord()python函数,返回constant lenght,python,ascii,Python,Ascii,我目前正在编写一个程序,其中我需要将文本文件从ascii转换为整数,并在执行一些操作后转换回。但是问题是,ord()可以返回1到3位数的任意数字,如果它可以返回标准位数,那就太好了。因为我的程序现在是 def convert_message_number2ascii(mystring): newstring = "" print("number:") for i in range(0,len(mystring),2): print("mystring[i:

我目前正在编写一个程序,其中我需要将文本文件从ascii转换为整数,并在执行一些操作后转换回。但是问题是,ord()可以返回1到3位数的任意数字,如果它可以返回标准位数,那就太好了。因为我的程序现在是

def convert_message_number2ascii(mystring):
    newstring = ""
    print("number:")
    for i in range(0,len(mystring),2):
        print("mystring[i:i+2]:"+mystring[i:i+2])
        newstring = newstring + str(chr(int(mystring[i:i+2])))
        print(newstring)
    return newstring


def convert_message_ascii2number(mystring):
    newstring = ""
    print("ascii:")
    for i in range(0,len(mystring)):
        newstring = newstring + str(ord(mystring[i]))
        print(newstring)
return newstring

但这不起作用,因为正如我所说的,ord返回不同大小的整数,有没有另一个函数返回像000的ord(\0)而不是0?如果不是,那么最好的方法是什么,因为我只能想到“丑陋”的方法。

您可以使用字符串格式来实现这一点:

def convert_message_ascii2number(mystring):
    newstring = ""
    print("ascii:")
    for i in range(0,len(mystring)):
        newstring = newstring + "%03d" % ord(mystring[i])
        print(newstring)
    return newstring

看起来您只需要取一个3位数或更少的数字,并始终使用3位数格式化该数字,前缀为零。例如,将
5
格式设置为
005
50
格式设置为
050

您可以使用该方法来执行此操作

例如:

number=5
“{:03}”。格式(数字)#注:3表示使用3位数字
返回

“005”
在这方面:

范围(0,len(mystring))中的i的
:
char_code=ord(mystring[i])
格式化字符代码=“{:03}”。格式(字符代码)
newstring=newstring+str(格式化字符码)
印刷品(新闻字符串)

<>但是如果你可以考虑把所有这些字符代码存储在一个列表中而不是一个大字符串。

有一个原因,我需要把它作为字符串谢谢。