Python书籍编码练习问题:readlines()用法与字符计数错误求助
问题原因分析
- 未按要求使用
readlines()方法读取文件内容,你之前直接迭代文件对象,不符合练习强制要求。 - 你默认所有行末尾都带
\n统一对长度减1,但文件最后一行通常没有换行符,导致最后一本书的长度被多减了1,出现计数错误。
修正后代码
# 给定代码 file = open("/usercode/files/books.txt", "r") # 修正后的代码 # 按要求使用readlines()读取所有行到列表 book_lines = file.readlines() for line in book_lines: # 仅删除末尾的换行符,保留书名本身的所有空格 book_name = line.rstrip('\n') # 拼接首字母和书名长度 print(book_name[0] + str(len(book_name))) file.close()
代码说明
readlines()方法会一次性读取文件所有行,返回每个行作为元素的列表,满足练习的强制使用要求。rstrip('\n')仅删除字符串末尾的换行符,不会影响书名本身包含的空格、开头/中间的特殊字符,保证长度计算符合要求,不需要区分是不是最后一行,避免了之前多减1的问题。
内容的提问来源于stack exchange,提问作者privateprinceton
相关产品推荐
相关产品推荐

