如何为字符串指定填充字符并按块拆分?

2024-10-04 01:29:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将一个整数字符串按n个字符拆分,然后将它们转换为unicode。不幸的是,我遇到了一个问题。。。因为前导的0已经从字符串中删除,这让我很困惑如何处理它们。 下面是一个例子:

print(num2txt(97097114103104))

在这里,前导97是ASCII表中的一个有效数字,我可以简单地在字符串前面加上一个“0”,这样整个字符串就可以正确地分成如下几部分:

^{pr2}$

但是,如果前三位数字在ASCII表中实际上是有效的呢? 像这样:

100097114103

在这种情况下,我想把它分成

['100', '097', '114']

但是,如果函数中发生了什么事情,如何确保不再需要“0”?在

我当前的代码如下:

def num2txt(num, k=3):

    line = str(num) 
    line = "0" + line
    line = [line[i:i+k] for i in range(0, len(line), k)]

    return line

Tags: 字符串lineasciiunicode情况数字整数num
2条回答

我将使用^{}将字符串的长度取整为3的倍数,然后^{}我的字符串。从那里到split my string what other better way than using a generator function?

import math
def num2txt(num, k):
    num_str = "{:0>{width}}".format(num, width=math.ceil(len(str(num))/k)*k)
    for n in range(0, len(num_str), k):
        yield num_str[n:n+k]

演示:

^{pr2}$

必要时只需加前导零。在

def num2txt(num, k=3):

    line = str(num)
    padding = len(line)%k
    if padding:
        line = '0'*(k-padding) + line
    line = [line[i:i+k] for i in range(0, len(line), k)]

    return line

相关问题 更多 >