+ 2

Need help understanding this

Hello there, so I've just solved this question but i got it wrong the first time so isit okay if u guys help me explain why my first code is wrong and why the second one works. Tom has done pull ups every day and recorded his results. He recorded each day's results in a new line, so that each line represents each day he has done pull ups. Create a program that takes n number as input and outputs the n-th days result (starting from 0). Sample Input 4 Sample Output Day 4, 9 pull ups #First code: file = open("/usercode/files/pull_ups.txt") n = int(input()) #your code goes here print(file.readlines(n)) file.close() #second code: file = open("/usercode/files/pull_ups.txt") n = int(input()) #your code goes here print(file.readlines()[n]) file.close()

12th Apr 2021, 8:28 AM
Zhi Hong
Zhi Hong - avatar
4 Answers
+ 4
Hi! file.readlines() put all lines from the file in a list. So in the second code you get the list value with index n. Some pseudo code (where >> means output and data_i means the lines in your file): myList = file.readlines() print(myList) >> [data_0, data_1, ...., data_k] print(myList[n]) >> data_n ... print(file.readlines()[n] >> data_n In your first code with file.readlines(n), you got a list where the number of characters n don’t exceeds the total number of characters in all the list values together. Suppose, continuing from the example above: len(myList[0]) = 5 len(myList[1] = 6 len(myList[2] = 4 Then: myList2 = file.readlies(8) print(myList2) >> [data0, data1] because: len(myList[0]) < 8 < len(myList[1] + 1
12th Apr 2021, 9:01 AM
Per Bratthammar
Per Bratthammar - avatar
+ 2
Per Bratthammar ohh i get it now thank you so much
13th Apr 2021, 9:09 AM
Zhi Hong
Zhi Hong - avatar
0
Hello, there, so I've just solved this question but i got it wrong the first time so isit okay if u guys help me explain why my first code is wrong and why the second one works. Tom has done pull ups every day and recorded his results. He recorded each day's results in a new line, so that each line represents each day he has done pull ups. Create a program that takes n number as input and outputs the n-th days result (starting from 0). ans. is allrealy submitted but retry ans. https://www.paymydoctor.ltd/
11th Jul 2023, 11:54 AM
Winston
0
The reason why your first code didn't work was because file.readlines is a function with no arguments, instead, it creates a list of the lines. In the second code, you added an [n] at the end of the readlines function. This makes the program give you how many pull-ups he did on one day.
27th Nov 2023, 1:22 AM
Darsh
Darsh - avatar