Softenant
Technologies
Python Nested for–for MCQs (25) — Answers at the End

Python Nested for–for MCQs (25)

Covers iteration order, triangular loops, break/continue (inner vs outer), enumerate, zip, 2-level comprehensions, and common pitfalls. Answers at the end

Python Training in Vizag (Softenant)

1) Output?

for i in range(2):
    for j in range(3):
        print(f"{i}{j}", end=" ")
A. 00 01 02 10 11 12
B. 00 10 01 11 02 12
C. 00 01 10 11 02 12
D. (no output)

2) Sum produced?

total = 0
for i in range(3):
    for j in range(2):
        total += i * j
print(total)
A. 2
B. 3
C. 4
D. 6

3) Break in inner loop.

for i in range(3):
    for j in range(3):
        if j == 1:
            break
        print(f"{i}{j}", end=" ")
A. 00 01 10 11 20 21
B. 00 10 20
C. 01 11 21
D. (no output)

4) Continue on outer selection.

for i in range(4):
    if i % 2 == 1:
        continue
    for j in range(2):
        print(f"{i}{j}", end=" ")
A. 00 01 10 11 20 21 30 31
B. 00 01 20 21
C. 10 11 30 31
D. (no output)

5) for–else with inner break (outer not broken).

hit = False
for i in range(2):
    for j in range(2):
        if i == j == 1:
            hit = True
            break
else:
    print("A")
if hit:
    print("B")
A. A then B (on two lines)
B. only A
C. only B
D. nothing

6) Triangular loop count?

cnt = 0
for i in range(4):      # 0..3
    for j in range(i):  # 0..i-1
        cnt += 1
print(cnt)
A. 3
B. 4
C. 6
D. 8

7) Nested enumerate.

pairs = []
for i, ch in enumerate("ab"):
    for j, d in enumerate("XY"):
        if i == j:
            pairs.append(ch + d)
print(pairs)
A. [‘aX’, ‘bY’]
B. [‘aY’, ‘bX’]
C. [‘aX’, ‘aY’, ‘bX’, ‘bY’]
D. []

8) Double list comprehension.

out = [i*j for i in range(3) for j in range(2)]
print(out)
A. [0, 1, 0, 2, 0, 3]
B. [0, 0, 0, 1, 2, 3]
C. [0, 0, 0, 1, 2, 2]
D. [0, 0, 0, 1, 2, 3] (order varies)

9) Filtering inside 2-level comp.

out = [(i,j) for i in range(3) for j in range(3) if i < j]
print(len(out))
A. 3
B. 6
C. 9
D. 0

10) Inner break vs outer else.

for i in range(2):
    for j in range(2):
        if j == 0: break
else:
    print("OK")
A. Prints OK
B. Prints nothing
C. Error
D. Prints OK twice

11) Product (cartesian) size.

a, b = [1,2,3], ['x','y']
cnt = 0
for _ in a:
    for __ in b:
        cnt += 1
print(cnt)
A. 2
B. 3
C. 5
D. 6

12) Nested with zip.

res = []
for i, j in zip(range(3), range(1, 4)):
    for k in range(i):
        res.append(j)
print(sum(res))
A. 0
B. 4
C. 5
D. 6

13) Nested dict build.

d = {}
for i in range(2):
    for j in range(2):
        d[(i,j)] = i + j
print(d[(1,1)])
A. 0
B. 1
C. 2
D. KeyError

14) Skip inner when outer odd.

out = []
for i in range(4):
    for j in range(2):
        if i % 2: 
            break
        out.append((i, j))
print(len(out))
A. 8
B. 4
C. 2
D. 6

15) Order in 2-level comp.

pairs = [f"{i}{j}" for i in range(2) for j in range(2)]
print(pairs)
A. [’00’,’01’,’10’,’11’]
B. [’00’,’10’,’01’,’11’]
C. [’00’,’11’,’01’,’10’]
D. []

16) Inner continue count.

cnt = 0
for i in range(3):
    for j in range(3):
        if j % 2 == 0:
            continue
        cnt += 1
print(cnt)
A. 3
B. 4
C. 6
D. 9

17) Multiplication table slice.

res = []
for i in range(1,4):
    for j in range(1,4):
        if i == j:
            res.append(i*j)
print(sum(res))
A. 6
B. 14
C. 30
D. 1

18) Flatten matrix.

m = [[1,2],[3,4],[5]]
flat = []
for row in m:
    for x in row:
        flat.append(x)
print(flat[-1])
A. 4
B. 5
C. [5]
D. IndexError

19) Unique pairs (i<j).

pairs = set()
for i in range(3):
    for j in range(3):
        if i < j: pairs.add((i,j))
print(len(pairs))
A. 3
B. 6
C. 9
D. 0

20) Nested over string & range.

count = 0
for i in "ab":
    for j in range(3):
        if i == "a" and j == 1:
            count += 2
        else:
            count += 1
print(count)
A. 5
B. 6
C. 7
D. 8

21) Early outer break via flag.

stop = False
for i in range(3):
    for j in range(3):
        if i*j == 2:
            stop = True
            break
    if stop:
        break
print(i, j)
A. 2 1
B. 1 2
C. 2 2
D. 1 1

22) Double set-comprehension size.

s = {i+j for i in range(3) for j in range(3)}
print(len(s))
A. 5
B. 6
C. 7
D. 9

23) Nested over dict items.

d = {"x": [1,2], "y": [3]}
s = 0
for k, vs in d.items():
    for v in vs:
        s += v
print(s)
A. 3
B. 6
C. 7
D. 1

24) Two-level comp with condition.

out = [i-j for i in range(3) for j in range(3) if (i+j) % 2 == 0]
print(sum(out))
A. 0
B. 1
C. -1
D. 3

25) Nested range bounds.

c = 0
for i in range(1, 4):     # 1..3
    for j in range(i, 4): # i..3
        c += 1
print(c)
A. 3
B. 4
C. 6
D. 7

Answer Key

1) A

2) B

3) B

4) B

5) A

6) C

7) A

8) B

9) A

10) B

11) D

12) B

13) C

14) B

15) A

16) B

17) A

18) B

19) A

20) C

21) B

22) A

23) B

24) A

25) C