在Python中循环计数范围

Kit*_*one 6 python scope palindrome

我想弄清楚这段代码是如何工作的.如何i在for循环之外访问?

# Palindrome of string
str=raw_input("Enter the string\n")
ln=len(str)
for i in range(ln/2) :
    if(str[ln-i-1]!=str[i]):
        break
if(i==(ln/2)-1):         ## How is i accessible outside the for loop ? 
    print "Palindrome"
else:
    print "Not Palindrome"
Run Code Online (Sandbox Code Playgroud)

Are*_*res 1

这是Python 的一部分。在 for 循环(包括循环计数器)内声明的变量在完全离开作用域之前不会衰减。

看看这个问题:

Python For 循环的作用域

从答案来看:

for foo in xrange(10):
    bar = 2
print(foo, bar)
Run Code Online (Sandbox Code Playgroud)

上面将打印 (9,2)。