티스토리 뷰
파이썬에서 가장 많이 사용되는 제어문은 아마도 if문 일 것이다. 없거나 여러개의 elif 가 있을 수 있고 else 는 선택적이다. 다른 프로그래밍 언어에서 사용되는 switch - case 문을 대신한다.
if x < 0 :
x = 0
print('Negative changed to zero')
elif x == 0 :
print('Zero')
elif x == 1 :
print('Single')
else :
print('More')
파이썬의 for 문은 c언어의 for 문과 약간 다르다. c언어의 경우는 사용자가 이터레이션 단계와 중지 조건을 정의할 수 있는데, 파이썬의 for 문은 임의의 시퀀스 (리스트 또는 문자열) 의 항목들을 그 시퀀스에 들어있는 순서대로 이터레이션 한다.
>>> words = ['cat', 'window', 'defenestrate']
>>> for w in words :
... print(w, len(w))
...
cat 3
window 6
defenestrate 12
숫자들의 시퀀스로 이터레이트를 할 필요가 없다면 range() 함수를 이용하여 조금 더 쉽게 반복문을 사용할 수 있다.
>>> for i in range(5) :
... print(i)
...
0
1
2
3
4
범위가 다른 숫자로 시작을 하거나, 다른 증가분을 지정하는 것도 가능하다. range() 함수의 마지막 값은 수열에 포함되지 않는다.
>>> for i in range(5, 10) : # 시작값은 5부터, 10미만까지 1씩 증가하는 수열
... print(i)
...
5
6
7
8
9
>>> for i in range(0, 10, 3) : # 시작값은 0부터, 10미만까지 3씩 증가하는 수열
... print(i)
...
0
3
6
9
>>> for i in range(-10, -100, -30) : # 시작값은 -10부터, -100미만까지 -30씩 증가하는 수열
... print(i)
...
-10
-40
-70
시퀀스의 인덱스로 이터레이트 하려면 range() 와 len() 을 사용하면 된다.
>>> a = ['Mary', 'had', 'a', 'little', 'lamb']
>>> for i in range(len(a)) :
... print(i, a[i])
...
0 Mary
1 had
2 a
3 little
4 lamb
range() 가 return 한 객체는 마치 리스트처럼 동작하지만 실제로 리스트가 아니다. 이터레이트 하는 시퀀스 항목들을 순서대로 돌려주는 객체이지만, 실제로 리스트를 만들지 않기 때문에 메모리 공간을 절약한다. 이런 객체를 [이터러블] 이라고 한다. range() 에서 리스트를 얻기 위해서는 list() 함수를 사용하면 된다.
>>> list(range(4))
[0, 1, 2, 3]
break 문은 가장 가까운 반복문의 loop 로 부터 빠져나갈 때 사용한다. 파이썬의 반복문은 else 절을 가질 수 있는데, 이터러블이 완전히 소진되거나, 조건이 거짓이 되어서 종료할 때 실행된다. 단 반복문이 break 로 종료될 때는 실행되지 않는다.
>>> for n in range(2, 10) :
... for x in range(2, n) :
... if n % x == 0 :
... print(n, 'equals', x, '*', n//x)
... break
... else :
... # 반복문 내에서 if 조건을 만족시키는 케이스를 찾지 못하고
... # 이터레이터가 모두 소진되었을 때 아래 print() 가 처리된다.
... 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
continue 는 가장 가까운 반복문으로 돌아간다. continue 를 만나면 아래쪽에 위치한 소스코드는 처리되지 않는다.
>>> for num in range(2, 10) :
... if num % 2 == 0 :
... print("짝수 : ", num)
... continue
... print("홀수 : ", num)
...
짝수 : 2
홀수 : 3
짝수 : 4
홀수 : 5
짝수 : 6
홀수 : 7
짝수 : 8
홀수 : 9
END
'IT > Python' 카테고리의 다른 글
[Python] 리스트 (더 자세하게 알아보기) (0) | 2020.07.09 |
---|---|
[Python] 함수 (Function) (0) | 2020.07.08 |
[Python] 리스트 (0) | 2020.06.30 |
[Python] 문자열 (0) | 2020.06.30 |
[Python] 숫자 연산 (0) | 2020.06.28 |