python - 从 Python 字符串中删除前导 + 尾随空格和换行符,.strip() 不起作用?
问题描述
我目前正在上我的第二门 Python 课程,在我们的复习热身活动中,我被一个看似简单的问题难住了。这是它的陈述方式:
在本练习中,您的函数将接收 1 个参数,即文本文件的名称。该函数将返回通过将每行的第五个字符连接成一个字符串而创建的字符串。如果该行少于 5 个字符,则应跳过该行。在查找第五个字符之前,所有行都应删除前导和尾随空格。
CodeGrinder 然后根据随机生成的 .txt 文件对其进行评分。这是我目前拥有的代码:
def fifthchar(filename):
file = open(filename)
fifthstring = ''
for x in file:
x.strip('\n ')
if len(x) >= 5:
fifthstring += x[4]
else:
pass
fifthstring.strip('\n ')
return fifthstring
并返回错误:
AssertionError: False is not true : Fifthchar(rprlrhya.txt) 返回了 mylgcwdnbi
dmou。它应该返回 mylgcwdnbidmou。检查你的逻辑,然后再试一次。
似乎换行符正在通过 my 潜入,.strip()
我不知道如何删除它们。我认为这.strip()
会删除\n
,并且我已经尝试了一切,从.rstrip()
到fifthstring.join(fifthstring.split())
在循环中剥离 Fifthstring 和 x 时具有冗余。这些换行符是如何通过的?
解决方案
这应该有效:
def fifthchar(filename):
with open(filename) as fin :
return ''.join( line.strip()[4] if len(line.strip()) > 4 else '' for line in fin.readlines() )
推荐阅读
- java - 将 double 到 int 类型转换视为隐式类型转换吗?
- javascript - 如何在 socket.io 中查看房间内的用户数量?
- apache-flink - MapState 在 RichCoFlatMapFunction 中始终为空
- codenameone - 代号一中如何使用坐标布局?
- ios - PWA 与 Safari 网站有什么区别?
- c++ - 使用 cmake 在 Linux for Windows 上交叉编译程序
- php - PhpStorm:更改 DocumentRoot 后更改 URL
- vba - 如何使用 VBA 在 ms 访问表单中创建自定义自动编号?
- javascript - JavaScript:从对象数组中删除空/未定义/空属性
- php - 当两个不同的路由组内有相同的路由时,如何管理 Blade 中的路由?