簡體   English   中英

請向我解釋我怎樣才能更好地把它編碼出來

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM