有没有办法让这段代码更干净?我还在学习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]
此代码将删除前导和尾随空格、换行符和制表符。
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]