2016-07-14 32 views
6

Tôi đang cố gắng tìm hiểu cách mã này hoạt động. Làm thế nào là i có thể truy cập bên ngoài vòng lặp for?Đếm phạm vi vòng lặp trong Python

# 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" 
+3

cho vòng lặp không có không gian tên riêng. [Mô tả ngắn về quy tắc phạm vi Python] (http://stackoverflow.com/questions/291978/short-description-of-python-scoping-rules) –

+1

'i' có thể truy cập được vì các biến vòng lặp nằm trong phạm vi hiện tại với giá trị trừ khi bạn chỉ định một cái gì đó khác cho tên. –

+2

Tại sao? Làm thế nào hoặc những gì bạn đang thực hiện điều này cho? Nó quá phức tạp cho những gì nó làm. 'mystr == mystr [:: - 1]' – Nicarus

Trả lời

1

Đây là một phần của Python. Các biến được khai báo bên trong cho các vòng lặp (bao gồm các bộ đếm vòng lặp) sẽ không bị phân hủy cho đến khi chúng hoàn toàn rời khỏi phạm vi.

Hãy nhìn vào câu hỏi này:

Scoping In Python For Loops

Từ câu trả lời:

for foo in xrange(10): 
    bar = 2 
print(foo, bar) 

trên sẽ in (9,2).

Các vấn đề liên quan