+ 1
Pls explain this piece of code
words = 'abracadabra', 'tomato', 'python' def isGarland(w): g = 0 for i in range(len(w)): if w[:i] == w[-i:]: g = i return w[:g], g for word in words: gar = isGarland(word) print("{} is {}a Garland word {}".format(word, "not "*(gar[0]==''), ("of a degree of "+str(gar[1])+": "+gar[0])*(gar[0]!='')))
2 Answers
0
a garland word is word that has the same letters in the beginning and at the end in the same order. the number of similar letters determine the degree. tomato for example is 2 degrees because the same letters are "to" and are two letters.
code explanation bellow
0
the function compares the letters first vs last, second vs second last and so on. by using.
w[:i] == [-i :]
g = i stores the number of similar letters
return w[:g], g
w[:g] first letter to the last similar letter.
g is the number of similar letters (degree)
in the loop,
gar stores the return of the function, similar letters and degree.
{} are place holders for the variables in the format method.
gar[0] = similar letters
gar[1] = degree
"not" *(gar[0]=='') means unpack "not" only when gar[0] is empty, when the expression is true.
gar[0])*(gar[0]! ='') unpack gar[0] when it's not empty.