2015년 4월 8일 수요일

Python 반복문 안의 두 가지 분기문 | Two Types of If Statements in For Statements in Python

for n in range(2, 10):
    for x in range(2, n):
        if n % x == 0:
            print n, 'equals', x, '*', n/x
            break
    else:
        # loop fell through without finding a factor
        print n, 'is a prime number'
2 is a prime number
3 is a prime number
4 equals 2 * 2
5 is a prime number
6 equals 2 * 3
7 is a prime number
8 equals 2 * 4
9 equals 3 * 3

위 코드를 잘 보면 else의 indentation이 if와 일치하는 게 아니라 두번째 for와 일치한다.
이 경우, else는 if가 참이 아닐 때 실행되는 것이 아니라
두번째 반복문 안의 분기문이 한 번도 참이 안 되었을 때 실행되는 것이다.

for n in range(2, 10):
    for x in range(2, n):
        if n % x == 0:
            print n, 'equals', x, '*', n/x
            break
        else:
            # loop fell through without finding a factor
            print n, 'is a prime number'
3 is a prime number
4 equals 2 * 2
5 is a prime number
5 is a prime number
5 is a prime number
6 equals 2 * 3
7 is a prime number
7 is a prime number
7 is a prime number
7 is a prime number
7 is a prime number
8 equals 2 * 4
9 is a prime number
9 equals 3 * 3

위의 경우와 비교하면 일목요연하게 알 수 있다.


Read More

댓글 없음:

댓글 쓰기