+ 1

I copied a working code of comparing ages over internet but I am unable to understand the 7 th line of this code pls explain me

https://code.sololearn.com/cyMy6E2l1CiE/?ref=app

23rd Oct 2020, 1:12 PM
Smiley[Offline]
4 Antworten
+ 2
txt=['younger than', 'the same age as', 'older than'][(self.age <= other.age) + (self.age < other.age)] It is simple indexing Let's assume it was txt=['younger than','the same age','older than'][0] would have returned the first element ,if it was [1] second element would have been returned, [2] would have returned third element Let's take this part [(self.age <= other.age) + (self.age < other.age)] if self.age is <=other. age then it will result in true which is implicitly converted to integer value 1 and self.age <other.age will return return 1 as well so 1+1 =2 , therefore it will return other. person is "older than" self.person which is right Like this if it was self.age<=other age results in false and self.age<other.age results in false You will get 0+0=>0 and it will return other.person is "younger than" self.person which again is right And if both had same age then self.age<=others.age will return 1 and self.age<others.age will return 0 so 1+0 =>1 and you will get same age which is right
23rd Oct 2020, 1:29 PM
Abhay
Abhay - avatar
+ 2
(self.age <= other.age) + (self.age < other.age) = (10 <= 1) + (10 < 1) = False + False = 0 + 0 = 0 So it will return the first element of txt. This is because python has an implicit conversion between type bool and type int when the interpreter sees the '+' sign.
23rd Oct 2020, 1:24 PM
QTWizard
+ 1
Abhay thanks now I got it
23rd Oct 2020, 1:32 PM
Smiley[Offline]
0
QTWizard I can't understand what you said Could you pls explain me in an easier way
23rd Oct 2020, 1:28 PM
Smiley[Offline]