2014-03-03 2 views
0

어디에 문제가 있는지 알 수 없지만 내부 루프는 한 번만 실행됩니다. 이유가 무엇입니까?내부 루프가 한 번만 실행됩니다.

코드 : 파이썬 2.7

for i in range(1,11,5): 
    print i 
    print '#' 
    for j in range(i,6): 
     print j 
    print '---------------' 

출력 :

1 
# 
1 
2 
3 
4 
5 
--------------- 
6 
# 
--------------- 

가 필요 출력 ::

1 
# 
1 
2 
3 
4 
5 
--------------- 
6 
# 
6 
7 
8 
9 
10 
--------------- 
+0

해당 들여 쓰기가 있으면 내부 루프가되지 않습니다. ( – thefourtheye

+0

@thefourtheye 들여 쓰기의 문제가 아닐 수도 있습니다. 예상 출력이 잘못되었습니다. – zhangxaochen

+0

@thefourtheye 아니요, 올바른 들여 쓰기를 사용하면 코드 스 니펫 여전히 OP의 예상 출력을 얻지 못합니다. 그래서 내가 들여 쓰기 오류가 SO에 게시 할 때 오타라고 생각하는 이유입니다. – zhangxaochen

답변

1

이것은 당신의 필요한 출력이 생성 : 당신이 i에 따라 j 모두 경계를 확인하지 않는 한

for i in range(1,11,5): 
    print i 
    print '#' 
    for j in range (i, i+5): 
     print j 
    print '-------------------' 

는, 내부 루프가 i가이 상 내부의 경계 고정보다 크거나 같을 때 실행되도록 중지됩니다 고리.

0
for i in range(1,11,5): 
    print i 
    print '#' 
    for j in range(1,6): # based on your 'required output', the inner loop should run from 1 to 6. 
     print j 
    print '---------------' 
2
>>> range(1,11,5) 
[1, 6] 

range(1,11,5)은 1과 6을 순환합니다. 이것은 아마도 원하지 않는 것입니다 ... 두 번째 for 루프를 실행할 때 i은 6이므로 for j in range(i,6)for j in range(6,6)이므로 한 번만 실행됩니다.

+0

His 'required 결과물 '은 그것이 실제로 그가 원하는 것임을 암시한다. –

0

두 번째 루프는 for j in range(1,6): 대신 for j in range(i,6):입니다.

관련 문제