![](/img/trans.png)
[英]Could someone explain to me what I'm doing wrong in this Python Code and help me figure it out?
[英]please explain to me how i could better code this out
你被要求制作一個特殊的書籍分類程序,它根據每本書的標題為每本書分配一個特殊的代碼。
該代碼等於書的第一個字母,后面是標題中的字符數。
例如,對於“哈利波特”一書,代碼為:H12,因為它包含 12 個字符(包括空格)。您將獲得一個 books.txt 文件,其中包含書名,每一個都寫在單獨的一行上。
逐一閱讀書名,output 每本書的代碼各占一行。例如,如果 books.txt 文件包含:
Some book Another book
你的程序應該是 output:
S9 A12
回想一下 readlines() 方法,它返回一個包含文件行的列表。
另外,請記住,除了最后一行之外,所有行的末尾都包含一個 \n,這不應包含在字符數中。
這是我用來學習 python 的網站,我被卡住了,因為我不知道在哪里使用readlines()
並且我真的不知道為什么我需要使用它。 (它必須被使用。)我下面的代碼顯示我打印文件中的每個名字並且只得到它的第一個字母。 我的錯誤是當我運行這段代碼時,我得到了我想要的完全相同的東西,只是我的最后一位數字因為空格而關閉了。
#given code
file = open("/usercode/files/books.txt", "r")
#my code
for name in file:
print(name[0] + str(len(name)-1))
file.close()
OUTPUT:
Your Output
H12
T16
P19
G17
Expected Output
H12
T16
P19
G18
說明說:
另外,請記住,除最后一行外,所有行的末尾都包含一個 \n
您要從所有行的長度中減去 1,包括最后一行。
您可以使用rstrip()
方法刪除字符串末尾的換行符,而不是從長度中減去 1 和特殊大小寫的最后一行。
for name in file.readlines():
print(name[0] + str(len(name.rstrip('\n'))))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.