+ 1
Не могу решить контрольную задачу про заголовки, помогите:
Вам дан файл формата books.txt, в отдельных строках указаны заголовки книг. Вам нужно прочитать заголовки один за одним и в отдельных строках выдать код каждой книги. Например, код для книги «Гарри Поттер» будет выглядеть следующим образом: H12, так как заголовок состоит из 12 символов (включая пробелы) Например, если файл формата books.txt содержит такие заголовки: Какая-то книга Другая книга Ваша программа должна выдать результат: К14 Д12 file = open("/usercode/files/books.txt", "r") #введите код сюда for i in file: x = str(len(i) - 1) print(i[0] + x) file.close() Мой вывод: H12 T16 P19 G17 Должен быть: H12 T16 P19 G18 В чём проблема с последним кодом?
5 odpowiedzi
+ 6
You can check if the last character in line is "\n" or not ,then decide if you need to decrement length of it by one or not
Here it is,
if i[-1]=="\n":
print(str(len(i)-1))
else:
print(str(len(i)))
Edit: another way to achieve it would be using rstrip it will remove all the whitespace and newline characters from the end of the line
like,
for i in file :
x=str(len(i.rstrip()))
+ 4
Andrey you can't do len(i)-1 for every line since last line in the file does not have a newline character("\n") at the end of it
+ 2
Смог решить таким способом
file = open("/usercode/files/books.txt", "r")
#введите код сюда
for i in file:
if i[-1] == "\n":
print(str(i[0])+(str(len(i)-1)))
else:
print(str(i[0])+(str(len(i))))
file.close()
0
And so what i need to write?
0
Thank you very much😉