对for循环中的Python变量范围感到困惑

此代码将引发NameError:未定义名称“ i”

for n in range(2, 101):
    for i in range(2, n):
        if n % i == 0:
            break
    if n % i != 0:
        print(n, end=' |')

该代码将正确执行

n = 97
if True:
    for i in range(2, n):
        if n % i == 0:
            break
    if n % i != 0:
        print(n, end=' |')

有人可以告诉我为什么吗?