# COMMON FOR MISTAKES
# Each block shows the wrong way, the error it produces, and the right way
# Read through — don't just run it top to bottom

# ─────────────────────────────────────────────
# MISTAKE 1 — Missing the colon
# ─────────────────────────────────────────────

# Wrong — SyntaxError
# for letter in "Bull"
#     print(letter)

# Right
for letter in "Bull":
    print(letter)

# ─────────────────────────────────────────────
# MISTAKE 2 — Wrong indentation
# ─────────────────────────────────────────────

# Wrong — IndentationError
# for letter in "Bull":
# print(letter)

# Right
for letter in "Bull":
    print(letter)

# ─────────────────────────────────────────────
# MISTAKE 3 — Modifying the loop variable
# ─────────────────────────────────────────────

word = "Bull"

for letter in word:
    letter = "X"    # changes the variable — not the string
    print(letter)   # X X X X

# letter is a copy — modifying it doesn't change the original
# strings are immutable

# ─────────────────────────────────────────────
# MISTAKE 4 — Counter defined inside the loop
# ─────────────────────────────────────────────

# Wrong — resets on every iteration
for letter in "Bull":
    count = 0
    count += 1
print(count)    # always 1

# Right — define before the loop
count = 0
for letter in "Bull":
    count += 1
print(count)    # 4

# ─────────────────────────────────────────────
# MISTAKE 5 — range(stop) starting at 1
# ─────────────────────────────────────────────

# Wrong — expecting 1 2 3 4 5
for i in range(5):
    print(i)    # 0 1 2 3 4

# Right
for i in range(1, 6):
    print(i)    # 1 2 3 4 5

# ─────────────────────────────────────────────
# MISTAKE 6 — stop is included
# ─────────────────────────────────────────────

# Wrong — expecting 1 2 3 4 5 6
for i in range(1, 6):
    print(i)    # 1 2 3 4 5 — 6 is never printed

# Right
for i in range(1, 7):
    print(i)    # 1 2 3 4 5 6

# stop is never included — always
