티스토리 뷰

반응형

 

파이썬에서 가장 많이 사용되는 제어문은 아마도 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')

 

if 문

 

파이썬의 for 문은 c언어의 for 문과 약간 다르다. c언어의 경우는 사용자가 이터레이션 단계와 중지 조건을 정의할 수 있는데, 파이썬의 for 문은 임의의 시퀀스 (리스트 또는 문자열) 의 항목들을 그 시퀀스에 들어있는 순서대로 이터레이션 한다.

>>> words = ['cat', 'window', 'defenestrate']
>>> for w in words :
...     print(w, len(w))
...
cat 3
window 6
defenestrate 12

 

for 문

 

숫자들의 시퀀스로 이터레이트를 할 필요가 없다면 range() 함수를 이용하여 조금 더 쉽게 반복문을 사용할 수 있다.

>>> for i in range(5) :
...     print(i)
...
0
1
2
3
4

 

range() 함수는 수열을 만든다.

 

범위가 다른 숫자로 시작을 하거나, 다른 증가분을 지정하는 것도 가능하다. 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() 함수는 범위 (시작과 끝) 및 증가분 지정이 가능하다.

 

시퀀스의 인덱스로 이터레이트 하려면 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() 와 len() 을 이용한 이터레이트

 

range() 가 return 한 객체는 마치 리스트처럼 동작하지만 실제로 리스트가 아니다.  이터레이트 하는 시퀀스 항목들을 순서대로 돌려주는 객체이지만, 실제로 리스트를 만들지 않기 때문에 메모리 공간을 절약한다. 이런 객체를 [이터러블] 이라고 한다. range() 에서 리스트를 얻기 위해서는 list() 함수를 사용하면 된다.

>>> list(range(4))
[0, 1, 2, 3]

 

range() 가 리턴한 이터러블 객체를 리스트로 변환

 

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

 

소수를 찾는 프로그램 - 반복문의 else 절

 

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
댓글
공지사항