반복문(while) 활용하기
loop(반복문)
- 반복적인 작업을 가능하게 해주는 도구
- 특정 조건을 만족하는 경우 수행할 수 있음(while)
- 리스트, 문자열, 튜플 등 컬렉션 타입의 아이템을 하나씩 순회하면서 사용 가능 (for)
- 코드 작업에서, 가장 많이 사용하는 구문 중 하나
- 주의할점: while을 사용할 경우, 반복을 멈추게 하는 장치가 필요
- 그렇지 않으면 셀이 무한히 수행되며, jupyter notebook의 재부팅이 필요
while 키워드
- while 뒤의 조건이 True일 경우, while 코드 블록을 계속 수행
- while 코드 블록
- if와 마찬가지로 while문 아래의 들여쓰기로 작성 된 부분을 의미
- 조건이 False가 되면 블록 수행을 멈추고 이후 코드를 수행
while 키워드 이용하여 리스트의 아이템 출력하기
a = [1, 10, 9, 24, 566, 23, 45, 67, 89]
i = 0
while i < len(a):
print(a[i])
i += 1
a = [1, 10, 9, 24, 566, 23, 45, 67, 89]
i = 0
while i < len(a):
if a[i] > 20:
print(a[i])
i += 1
무한 루프
- while의 경우 종료가 되지 않도록 코드를 작성하면 블록에서 빠져나올 수 없음
while True:
print('haha')
break
- loop를 중단할 때 사용
- 보통 조건문 안에서 수행되며, 조건을 만족하는 경우 loop를 탈출하기 위해 사용
- loop를 중단 하는 경우, while 이후의 코드를 수행
a = [1, 10, 9, 24, 566, 23, 45, 67, 89]
i = 0
while i < len(a):
if a[i] > 20:
break
print(a[i])
i += 1
continue
- break 처럼 반복을 중단하여 빠져나오진 않고, 다시 while 조건으로 점프함
- 특정한 경우에는 코드를 수행하지 않고 다음으로 건너 뛰기 위해 사용
a = 7
while a > 0;
a -= 1
if a == 5:
continue
print(a)
반복문(for) 활용하기
- 리스트, 문자열 등등 순회 가능한 객체를 순회하면서 값을 처리할 때 사용
- 아래와 같은 문법으로 사용
- 여기서 i는 매번 수행 될 때마다, a의 아이템으로 순차적으로 변경 됨
- 모든 아이템이 순회되면 for 블록 종료
a = [1, 2, 3, 4, 5]
for i in a:
print (i, i * 2)
1 2
2 4
4 8
3 6
5 10
문자열의 아이템 출력하기
- 문자열의 경우 순회 가능, 리스트의 유사하게 순회 가능
a = 'hello world'
for character in a:
print(character)
리스트 아이템 출력하기
a = [1, 10, 3, 4, 5]
for num in a:
if num % 2 == 0:
print(num/2)
else:
print(num+1)
2
5.0
4
2.0
6
dict의 아이템 출력하기
- dictionary의 경우 기본적으로 순회 하게 되면 key값을 참조
- keys() 함수를 이용하여 key 값만 순회 가능
- values() 함수를 이용하여 value 값만 순회 가능
- items() 함수를 이용하여 tuple형태로 key, value 순회 가능
a = {'korea' : 'seoul', 'japan' : 'tokyo', 'canada' : 'ottawa'}
for key in a:
print(key)
korea
japan
canada
for value in a.values():
print(value)
seoul
tokyo
ottawa
for key, value in a.items():
print(key, value)
korea seoul
japan tokyo
canada ottawa
for에서 index 사용하기
- 기본적으로 for에 리스트를 순회하는 경우, 값만 추출 함
- 아래와 같은 코드로 인덱스와 값 모두 사용 가능(enumerate 함수 이용)
a = [1, 2, 3, 4, 5]
for index, num in enumerate(a):
print(index, num)
0 1
1 2
2 3
3 4
4 5
break
- for의 경우에도 특정 조건일 때, loop 종료가 가능
a = [100, 90, 80, 70, 60, 50]
for num in a:
if num < 80:
break
print(num)
100
90
80
continue
a = [100, 90, 80, 70, 60, 50]
for num in a:
if num >= 60 and num <= 70:
continue
print(num)
100
90
80
50
loop 중첩
- 반복문의 경우에도 중첩하여 사용 가능
- 중첩이라는 것은 반복문 블록의 코드안에 또 반복문의 코드가 작성되는 것을 의미
- 이런 경우, 내부 루프는 외부 루프가 수행되는 만큼 반복 수행 됨
- 또한 중첩의 경우 무한히 가능
a = [1, 2, 4]
for i in a:
for j in a:
print (i * j)
1
2
4
2
4
8
4
8
16
구구단 출력하기
x = [2, 3, 4, 5, 6, 7, 8, 9]
y = [1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in x:
for j in y:
print(i, 'x', j, '=', i+j)
collection의 길이
- len() 내장함수로 계산 가능
- 내장함수란 팡썬 내부에 구현되어 있어서, import하지 않고도 사용 가능한 함수를 의미
- abs, len, type, range 등이 있음 (과정 진행하면서 필요할 때마다 다룰 예정)
a = [1, 2 ,3, 4, 5, 1]
len('hello world')
11
range 함수
- 리스트를 쉽게 만들 수 있는 내장함수
- 주어진 값에 따라 다양한 결과를 반환
- 1 ~ 100까지의 리스트 생성하기
a = list(range(1, 101))
- 연습문제 1부터 100사이의 5의 배수만을 갖는 리스트를 생성하시오
list(range(1, 101, 5))