为什么函数返回的input值调用strip()方法后打印时未生效?
问题原因
你的strip()操作本身是正常生效的,异常空格来源于print()函数的默认参数设置,而非answer变量本身的内容。
Python内置print()函数传入多个位置参数时,默认会在相邻参数的输出内容之间插入半角空格作为分隔符,对应默认参数sep=' '。你使用的print(".", answer, ".")共传入3个参数,执行时会自动在第一个.与answer之间、answer与第二个.之间各插入1个空格,你观察到的首尾多余空格就是这两个自动插入的空格,和strip()操作无关。
验证方法
你可以通过以下两种方式确认strip()已经正常生效:
- 打印
answer的长度,比对去掉首尾空白后的预期长度是否一致:
print(len(answer))
- 打印
answer的原始表示,可直接识别是否存在首尾空白:
print(repr(answer))
解决方案
可以通过任意一种方式解决输出空格问题:
- 修改
print()的分隔符参数,将分隔符设为空字符串:
print(".", answer, ".", sep="")
- 先完成字符串拼接再打印,避免多参数自动加分隔符:
# 普通字符串拼接 print("." + answer + ".") # f-string格式化(推荐) print(f".{answer}.")
内容的提问来源于stack exchange,提问作者neR
相关产品推荐
相关产品推荐

