2014-01-09 16 views
0

이중 루프를 사용하여 간단한 파이썬 프로그램을 작성하여 고유 한 좌표 세트가있는 html 페이지를 인쇄합니다. 루프에서 (전역 + node_counter) 변수를 인식 할 수 없기 때문에 오류가 발생합니다. 상단에 변수가 선언되도록하려면 어떻게해야합니까?루프의 변수에 액세스하기

game_counter = 0 

across0 = '72,70,97,70,97,61,116,71,97,83,97,75,72,75' 
across1 = '143,70,168,70,168,61,187,71,168,83,168,75,143,75' 
across2 = '212,70,237,70,237,61,256,71,237,83,237,75,212,75' 
across3 = '283, 70, 308, 70, 309, 61, 327, 71, 308, 83, 308, 75, 283, 75' 

while game_counter <60: 
    text_file.write("<!-- These are the image maps for game " + str(game_counter) + " -->\n\n") 
    node_counter = 0 

    while node_counter < 15: 
     placeholder_string = "" 
     placeholder_string += '<area shape="poly" coords = "' + (across + node_counter) + '" href="#"/>\n' 
     text_file.write(placeholder_string) 
     node_counter += 1 
     if node_counter == 15: 
      game_counter += 1 
+0

다음 반복으로 넘어 가기 위해 루프의 끝 부분에'continue'를 넣을 필요는 없습니다. 그건 루프 자체에 함축되어 있습니다. – user2357112

+1

'across + node_counter'에있는'가로 질러 '는 무엇입니까? 'across'라는 변수를 정의하지 않았습니다. – user2357112

+0

그게 내가 혼란스러워하는거야. 나는 across0, across1 등을 액세스하려고 시도하고있다. – user2512696

답변

1

그것은 당신이있어 보이는 "건너 뜁니다"변수를 반복하려고합니다. 아마도 다음과 같은 의미 일 수 있습니다. across = ['72...', '143...']. 그런 다음 당신은 for 루프 across을 반복 할 수 있습니다 나는 for 루프가 어떻게 보이는지에 대한 예로서 print을 사용하고

for a in across: 
    print(a) 

. 또한 파이썬 2를 사용하는 경우 print(a) 대신 print a을 사용합니다.

+0

완벽하게 작동합니다. 감사합니다. – user2512696

0

난 당신이 across0, across1, across2across3, 또한 across

그냥 평범한하지, 당신이 그 continue 문을 필요하지 않은 추가 의미 생각합니다.

0

acrossnode_counter을 추가하려고했지만 변수 across0, across1 만 정의 했으므로 오류가 발생합니다.

다른 약간의 오차도

  • 저장소있다 4 외부 루프 배열의 배열에 걸쳐 값
  • 변경 60 (보다 전체 길이가 될 것이다)
  • 변화 배열 길이를 사용하는 내부 루프도 현명합니다
  • 변경 across은 문제가있는 행의 game_counter을 사용하여 인덱싱됩니다.
  • if 행이 절대 실행되지 않으므로 무한 루프에 빠질 수 있습니다. game_counter 증가분을 내부 루프 외부로 이동하십시오.

이 다음 코드

across = [[72,70,97,70,97,61,116,71,97,83,97,75,72,75], 
    [143,70,168,70,168,61,187,71,168,83,168,75,143,75], 
    [212,70,237,70,237,61,256,71,237,83,237,75,212,75], 
    [283, 70, 308, 70, 309, 61, 327, 71, 308, 83, 308, 75, 283, 75]] 

while game_counter < len(across): 
    text_file.write("<!-- These are the image maps for game " + str(game_counter) + " -->\n\n") 
    node_counter = 0 

    while node_counter < len(across[game_counter]): 
     placeholder_string = "" 
     placeholder_string += '<area shape="poly" coords = "' + (across[game_counter][node_counter] + node_counter) + '" href="#"/>\n' 
     text_file.write(placeholder_string) 
     node_counter += 1 

    game_counter += 1 

을 제공하지만, 당신은 아마 적어도 내부 루프에 대한 루프에 대한 더 나을 것 :

for item in across[game_counter]: 
    ... 
    ... (item + node_counter) ... 
+0

예 - 카운터의 값에 따라 가로, 세로, 가로 3에 어떻게 액세스 할 수 있습니까? – user2512696

관련 문제