cookbok里面的一个例子,求解!

把单行string里面的空格转换成tab的函数

[Copy to clipboard] [ - ]
CODE:
def unexpand(astring, tablen=8):
    import re
    # split into alternating space and non-space sequences
    pieces = re.split(r'( +)', astring.expandtabs(tablen))
    # keep track of the total length of the string so far
    lensofar = 0
    for i, piece in enumerate(pieces):
        thislen = len(piece)
        lensofar += thislen
        if piece.isspace( ):
            # change each space sequences into tabs+spaces
            numblanks = lensofar % tablen
            numtabs = (thislen-numblanks+tablen-1)/tablen
            pieces[i] = '\t'*numtabs + ' '*numblanks
    return ''.join(pieces)

其中两行,不是太懂为什么要这么计算。
numblanks = lensofar % tablen
numtabs = (thislen-numblanks+tablen-1)/tablen

按照我的理解,下面这样就可以了。
numblanks = len(piece) % tablen
numtabs = len(piece) / tablen