+ 1
Need an explanation to this program ...can't understand
3 ответов
+ 5
I'm guessing you understand how the for loop works, but just need this part explained?
["Fizz","",][i%3!=0]+["Buzz",""][i%5!=0] or i
It's probably best if you break down into parts.
["Fizz","",]
This is just a list with 2 elements. The first with index 0 the second with Index 1
[i%3!=0]
This is used to evaluate to True or False, which as an index would be interpreted as 0 or 1, which would select either the string "Fizz" if False or the empty string "" if True.
Now you should be able to see that the second part;
["Buzz",""][i%5!=0]
Would behave the same way.
With the + operator between 2 strings they will be concatenated together.
So if the 1st part is False "Fizz" and the second is True "", the result is "Fizz" + "" which finally results in "Fizz".
If True and False "" + "Buzz"
If False and False "Fizz" + "Buzz"
If True and True "" + ""
This leaves the last part
If the string is anything other than empty then it will be output. If the str is empty then it is Falsy and the number will be output.
+ 3
Here's a similar 1 liner, see if you can analyze it and figure it out.
[print("Fizz" * (i % 3 < 1) + (i % 5 < 1) * "Buzz" or i) for i in range(1, 101)]
+ 1
Tq soo much for the explanation.it is clear now.