Python中执行str(1.5).strip(".")为何无法移除浮点数小数点?
问题原因说明
首先明确:浮点数转字符串后使用的小数点就是标准英文句号.,不存在专属特殊符号,返回结果不符合预期的核心原因是对str.strip()方法的功能存在误解。
str.strip(chars)的实际作用:仅移除字符串开头、结尾位置所有属于chars字符集合的连续字符,一旦匹配到第一个不在chars集合内的字符,就会停止对应方向的移除操作,字符串中间位置的字符完全不会被该方法处理。- 对应你的代码场景:
str(1.5)生成的字符串是"1.5",它的首字符是'1'、尾字符是'5',两个字符都不在你传入的待移除集合"."里,因此整个strip操作没有可移除的内容,自然返回原字符串"1.5"。
正确实现方式
如果要删除字符串内所有位置的小数点,需要使用替换方法:
# 移除字符串中所有的小数点 str(1.5).replace(".", "") # 执行返回结果为 '15',符合预期
补充示例帮你理解strip的行为:如果操作的字符串是
".1.5.",调用.strip(".")后只会移除首尾的两个点,返回结果为"1.5",字符串中间的小数点不会被改动。
内容的提问来源于stack exchange,提问作者Thomas
相关产品推荐
相关产品推荐

