有没有办法让这段代码更干净?我还在学习Python。先感谢您。不使用 Strip 方法

Is there a way to make this code cleaner? I'm still learning Python. Thank you in advance. Without using Strip method

此代码将删除前导和尾随空格、换行符和制表符。

def clean(message):
    while message[0] in '\n':
        message = message[1:]
    while message[0] in '\t':
        message = message[1:]
    while message[0] in ' ':
        message = message[1:]
    while message[-1] in '\t':
        message = message[:-1]
    while message[-1] in ' ':
        message = message[:-1]
    while message[-1] in '\n':
        message = message[:-1]
    while message[-1] in ' ':
        message = message[:-1]
    return message

您可以使用 strip。默认情况下 strip 删除所有白色-space 字符,例如'\n''\t'' ',从头到尾。

def clean(message):
    return message.strip()

或者如果你想更明确的话,你可以使用message.strip('\n\t ')。您可以添加其他字符以从两端删除其他字符。

由于这是内置方法,因此它会比 while 循环快很多。


应 OP 的要求不使用 strip: 简单地组合一些 while 循环

def clean(message):
    while message[0] in '\n\t ':
        message = message[1:]
    while message[-1] in '\n\t ':
        message = message[:-1]
    return message

也最好用索引,不用每次循环都修改message。这样也更快。

def clean(message):
    start, end = 0, -1
    while message[start] in '\n\t ':
        start += 1
    while message[end] in '\n\t ':
        end -= 1
    return message[start:end]