What is the expected result of executing the following code?
def fun(n): s = '+' for i in range(n): s += s yield s for x in fun(2): print(x, end='');
- It will print ++
- It will print ++++++
- It will print +
- It will print +++
Explanation: Let’s analyze this code snippet:
- The code begins by executing the for x in fun(2): loop.
- It uses the x variable to iterate through what fun(2): yields, and outputs it on the same line due to the end=” argument in the print function.
- Once the fun(2): iterator is invoked, it initializes a string that contains the character s = ‘+’.
- A for loop uses the range function with 2 as its argument, which was sent to the iterator when it was invoked. The for loop will iterate twice (the values for the i variable are 0 and 1).
- In the first iteration, the s += s operation is applied to the string, and the new string s = ‘++’ is yielded and outputted in the console.
- In the second iteration, the s += s operation is again applied to the last produced string, and the new string s = ‘++++’ is yielded and outputted in the console.
- The final result shown in the console is ++++++ .
More Questions: Python Essentials 2 – Module 4 Test
Please login or Register to submit your answer