기본형(1) : for in
for 변수 in 객체:
실행문
- 여기서 객체는 일반적으로 문자열, 리스트, 튜플, 딕셔너리를 의미함
- 변수는 객체의 첫 인덱스에 해당하는 값부터 마지막 인덱스에 해당하는 값까지 차례대로 정의됨
- ex) for x in 'abc' 일 경우 x는 'a' 부터 시작하여 'b', 'c' 순으로 정의됨
- ex) for x in [1, 2, 3] 일 경우 x는 1 부터 시작하여 2, 3 순으로 정의됨
- ex) for x in {'one':1, 'two':2, 'three':3} 일 경우 x 는 'one' 부터 시작하여 'two', 'three' 순으로 정의됨
- ex) for [x, y,] in [[1, 2], [3, 4], [5, 6]] 일 경우 x, y는 각각 1, 2 부터 시작하여 3, 4 그리고 5, 6의 값으로 정의됨
for x in 'abe':
print(x)
# 출력값 : a / b / c
for x in [1,2,3]:
print(x)
# 출력값 : 1 / 2 / 3
for x in {'one':1, 'two':2, 'three':3}:
print(x)
# 출력값 : one / two / three
for [x, y] in [[1, 2], [3, 4], [5, 6]]:
print(x,y)
# 출력값 : 1 2 / 3 4 / 5 6
기본형(2) : for in range
for 변수 in range(시작값, 끝값, 증감크기):
실행문
- 변수가 (시작값) 부터 (끝값-1) 까지 (증감크기) 간격으로 증가하면서 실행문을 실행함
- for i in range(0, 10, 1) 라면 i 는 1 부터 9 까지 1 씩 증가하며, 실행문은 총 9번 실행됨
- for 변수 in range(값1) : range( ) 에 변수가 1개라면 끝값=값1 이 되고 시작값=0, 증감크기=1이 됨
- for 변수 in range(값1, 값2) : range( ) 에 변수가 2개라면 시작값=값1, 끝값=값2 가 되고 증감크기=1이 됨
- 증감크기를 생략하거나, 시작값과 증감크기를 함께 생략할 수 있음
for i in range(0, 10, 2):
print(i)
# 출력값 : 0 / 2 / 4 / 8 / 8
for i in range(0,10):
print(i)
for i in range(10):
print(i)
기본형(3) : 다중 for문
- for문 내에 여러 for문을 포함시킬 수 있음
for i in range(2):
for j in range(2):
for k in range(2):
print(i,j,k)
for 관련 함수 : continue, break
- continue : continue 다음 실행문은 실행되지 않음
- break : for 문을 종료함
- 일반적으로 continue 는 for문의 특정 순간을 생략하며, break 는 for문의 남은 과정을 모두 취소함
for i in range(3):
if i == 1:
continue
print(i)
for i in range(10):
if i == 3:
break
print(i)
for 관련 함수 : else
- else : for문이 정상적으로 종료된 뒤 실행됨, break 로 인해 for문이 종료된 경우 실행되지 않음
for x in [1,2,3]:
print(x)
else:
print('끝')
# 출력값 : 1,2,3,끝
for x in [1,2,3]:
if x == 2:
break
print(x)
else:
print('끝')
# 출력값 : 1
리스트 내포
[표현식 for 변수1 in 객체1 if 조건문1
for 변수2 in 객체2 if 조건문2
......
for 변수n in 객체n if 조건문n]
- 위와 같이 for 변수 in 객체 if 조건문은 2개 이상으로 구성할 수도 있음
- if 조건문은 생략 가능함
a='abcde'
b=[val+'k' for val in a]
# 출력값 : ['ak', 'bk', 'ck', 'dk', 'ek']
a=[1,2,3,4,5]
b=[val*5 for val in a]
print(b)
# 출력값 : [5, 10, 15, 20, 25]
a = 'abcde'
b=[val+'k' for val in a if val == 'c']
print(b)
# 출력값 : [5, 10]
a1=[1,2,3]
a2=[6,7,8]
b=[val1+val2 for val1 in a1 if val1<3
for val2 in a2 if val2<7]
print(b)
# 출력값 : [7, 8]# (val1, val2)
# 순서는 (1,6), (1,7), (1,8), (2,6), (2,7), (2,8), (3,6), (3,7), (3,8) 이며
# 각 조건문에 따라 (1,6)과 (2,6)만 채택됨
출처: https://easyjwork.tistory.com/10 [쉽게 쉽게 가자:티스토리]
'프로그래밍 언어 > Python' 카테고리의 다른 글
[Python] 난수 random 모듈 (0) | 2024.03.04 |
---|---|
[Python] math 모듈 (0) | 2024.03.04 |
[Python] 슬라이싱 (Slicing) 기본과 예제 (0) | 2024.01.26 |
[Python] time() 함수, 거리구하기 예제 (0) | 2024.01.26 |
[Python] 수학 (math) 함수 (0) | 2024.01.26 |