반복문
반복적 작업을 위한 도구로 코드 작업에서 가장 많이 사용하는 구문 중 하나
특정 조건을 만족하는 경우 수행할 수 있음 (while)
리스트, 문자열, 튜플 등 컬렉션 타입의 아이템을 하나씩 순회하면서 사용 가능 (for)
break : 특정 조건일때 종료
주의 : while을 사용할 경우, 반복을 멈추게 하는 장치가 필요
반복문 중단 이후 코드 수행
continue : 해당 아이템 건너 뛰고 다음 반복 실행
중첩 사용 가능 (외부 루트 수행 횟수 만큼 내부 루프 반복 수행)
for
iterable한 집합의 아이템(데이터)을 value 변수에 차례로 대입 후 for 구문 코드 실행
모든 아이템이 순회되면 for 블록 종료
문자열의 경우 리스트와 유사하게 순회
for value in <iterable> :
<code : value>
dict 아이템 출력 가능
keys(), values(), items()
a = {'korea': 'seoul', 'japan': 'tokyo', 'canada': 'ottawa'}
for key, value in a.items():
print(key, value)
korea seoul
japan tokyo
canada ottawa
range
- iterable 숫자로 구성된 리스트 데이터를 만드는 함수
- range(end)
- range(start, end)
- range(start, end, stride)
enumerate
- index와 value 값을 동시에 사용 (
tuple 형태로 반환
)
subjects = ["math", "english", "science"]
for number, value in enumerate(subjects):
print(number + 1, value)
((0, 'math'), (1, 'english'), (2, 'science'))
zip
- 리스트를 같은 index끼리 묶어주는 함수
subjects = ["math", "english", "science"]
points = [80, 90, 70]
grades = ["B", "A", "C"]
list(zip(subjects, points, grades))
[('math', 80, 'B'), ('english', 90, 'A'), ('science', 100, 'A')]
list comprehension
- 반복문의 결과를 바로 리스트로 만듦으로써 for문 보다 속도가 빠르다.
- 조건문, 삼항연산 등과 함께 사용 가능
ls = [
for in ]
ls = [for in if
]
Q. 삼항연산으로 1~10의 숫자와 홀/짝수 구분을 출력하세요.
ls = [
str(num) + ":even" if num % 2 == 0 else str(num) + ":odd"
for num in range(1, 11)
]
while
- condition이 False가 될 때까지 구문 실행
a = [1, 2, 3, 4, 5, 'q']
idx = 0
while True:
data = a[idx]
idx += 1
if data == 'q':
break
elif data % 2 == 0 :
continue
print(data)
1
3
5