python - ord() 返回常量长度的python函数
问题描述
我目前正在编写一个程序,在该程序中我需要将文本文件从 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?如果不是最好的方法是什么,因为我只能想到“丑陋”的方法。
解决方案
看起来您只想取一个 3 位或更少位数的数字,并始终用 3 位数字格式化该数字,并以零为前缀。例如,格式5
为005
和50
as 050
。
您可以使用该str.format
方法执行此操作。
例如:
number = 5
"{:03}".format(number) # note: the 3 means use 3 digits
返回
"005"
在上下文中:
for i in range(0,len(mystring)):
char_code = ord(mystring[i])
formatted_char_code = "{:03}".format(char_code)
newstring = newstring + str(formatted_char_code)
print(newstring)
但是如果可以的话,也许可以考虑将所有这些字符代码存储在一个列表中,而不是一个大字符串中。
推荐阅读
- java - Spring Security SAML2 未找到 entityID
- django - Django 视图返回陈旧数据,在服务器重启后修复
- javascript - 在没有 src 属性的 IFrame 中呈现网页
- c++ - 添加成员变量的子类的构造
- python - 在python中合并两个字典列表
- html - Div 填充有白色透明背景,边缘完全透明
- adfs - 除非授权或登录,否则如何将ckan重定向到外部url
- node.js - plesk 使用通用 API 托管多个站点
- intellij-idea - Jboss 6 部署错误
- java - Android Studio - 将目标兼容性设置为 JDK 1.8 后,Gradle 构建失败