Python调用strip()后仍无法去除字符串右端空格的问题排查
问题解答
你出错的核心原因是:Python的字符串是不可变类型,strip()这类字符串方法不会直接修改原字符串,而是返回一个处理后的新字符串。你只调用了string.strip()但没把返回值存回string变量,原变量还是保留着带末尾空格的原始内容,所以打印出来还是有空格。
两种修正方法
方法1:将strip结果重新赋值给原变量
直接把处理后的新字符串覆盖原变量,后续打印的就是处理后的内容:
import random string = '' keys = ['car', 'banana', 'groof', 'jump', 'king', 'alley'] temp = random.randint(2,3) for i in range(temp): string = string + random.choice(keys) + ' ' # 关键:把strip的返回值重新赋值给string string = string.strip() print(string)
方法2:直接在print时调用strip
如果不需要修改原变量,直接在打印的时候使用处理后的结果即可:
import random string = '' keys = ['car', 'banana', 'groof', 'jump', 'king', 'alley'] temp = random.randint(2,3) for i in range(temp): string = string + random.choice(keys) + ' ' # 直接打印strip后的结果 print(string.strip())
进阶小技巧:避免多余空格的拼接方式
用str.join()方法拼接字符串,能从根源上避免产生末尾空格,不用再额外处理:
import random keys = ['car', 'banana', 'groof', 'jump', 'king', 'alley'] temp = random.randint(2,3) # 生成temp个随机元素的迭代器,用空格直接拼接 string = ' '.join(random.choice(keys) for _ in range(temp)) print(string)
内容的提问来源于stack exchange,提问作者NCKDY
相关产品推荐
相关产品推荐

