给定一个数字number
,它的数字被分成长度的部分n
(默认值n
是3),其中每个组代表一些ascii值,我想将number
转换成这些ascii字符的字符串。例如:
n number Output
==================================
3 70 F
3 65066066065 ABBA
4 65006600660065 ABBA
注意,数字中没有前导0
,因此第一个ascii值不一定用n
数字表示。
我当前的代码如下:
def number_to_string(number, n=3):
number = str(number)
segment = []
while number:
segment.append(number[:n])
number = number[n:]
return str(''.join('{:0>{}}'.format(chr(segment), n) for segment in number))
预期产出:
number_to_string(70)
'F'
number_to_string(65066066065)
'ABBA'
number_to_string(65006600660065, n=4)
'ABBA'
但是,我当前的代码返回一个空字符串。例如,它返回' '
,而不是“F”。有什么原因吗?谢谢您!
备注:
我想反转this question的过程,即根据字符串中每个字符(数字)的ascii值将整数转换为字符串。但阅读这个问题并不是回答这个问题的必要条件。
这有用吗?
这就是你想要的吗?
输出:
试试这个:
首先将给定的数字(转换为字符串)填充所需的零个数,以便可以将每个数字平均拆分为相等数量的字符。然后使用
re
将字符串分割成大小为n
的段。最后使用chr
将每个块转换为字符,然后使用join
将它们连接起来。相关问题 更多 >
编程相关推荐