목차
for 반복문
문자열 반복
break 구문 - 반복문 탈출
continue 구문 - 건너뛰기
range() 함수 - 특정 횟수 반복
else 구문
안긴 반복문 (= 중첩 for문 = 이중 for문)
pass 구문
단일 for문 예제 모음
중첩 for문 예제 모음
for 반복문
1.
for 루프는 열거형 데이터 (예: list, tuple, dict, set, 문자열) 의.
각 항목에 대해서 한번 씩 원하는 코드 블럭을 실행 가능.
이 때, 실행 코드 블럭은 일정한 규칙으로 들여써야 함.
2.
파이썬의 for 반복문은 객체 지향 언어의 반복 메서드와 유사 .
※ 절차형 프로그래밍 언어의 for 키워드와는 성격이 다름.
3.
for 반복문은 반복문 앞에 인덱싱 변수를 미리 설정할 필요 없음 .
cf. while 반복문은 설정해야 함.
[구문]
for mb in group :
execute_code
※ mb
① 열거형 자료의 개별 요소를 담을 변수.
② 보통 i, j, k 같은 단일 문자 사용.
※ group
① 열거형 자료. (예: list , tuple , dict , set , 문자열 )
② 구간(범위) 표시 함수. (예: range() 함수)
※ execute_code
① 실행코드.
② 들여 씀.
주의: for 라인 맨 뒤에 콜론 (:) 찍는 거 잊지말 것.
[예제1] - List 반복
code = ["HTML", "CSS", "JS"]
for x in code:
print(x, end=" ")
결과값: HTML CSS JS
[예제2] range() 함수 반복.
for i in range (1,5,2) :
print(i, end=" ")
결과값: 1 3
[예제3] 문자열 각각의 문자 출력
for i in "Homzzang.com":
print(i, end=" ")
결과값: H o m z z a n g . c o m
문자열 반복
문자열은 character (문자 1개)의 배열 조합과 같음.
따라서, 각 문자에 대해서 for 반복문을 돌릴 수 있음.
[예제]
for x in "Hz":
print(x, end=" ")
결과값: H z
break 구문 - 반복문 탈출
break 구문은 반복문 빠져나올 때 사용. (조건이 참일 때 작동.)
주의: 실행코드가 break 앞이냐 뒤냐에 따라 출력 결과가 달라짐.
[예제1] - print() 구문이 break문 앞에 위치한 경우.
code = ["HTML", "CSS", "JS"]
for x in code:
print(x, end=" ")
if x == "CSS":
break
결과값: HTML CSS
[예제2] - print() 구문이 break 구문 뒤에 위치한 경우.
code = ["HTML", "CSS", "JS"]
for x in code:
if x == "CSS":
break
print(x, end=" ")
결과값: HTML
continue 구문 - 건너뛰기
continue 구문은 현재 조건만 건너뛰고, 다음을 이어서 실행.
[예제]
code = ["HTML", "CSS", "JS"]
for x in code:
if x == "CSS":
continue
print(x, end=" ")
결과값: HTML JS
range() 함수 - 특정 횟수 반복
특정 범위의 숫자 리스트 반환.
※ 특정 횟수의 반복문 돌릴 때 유용.
※ range() 함수 더 자세히 보기
[구문]
range (start=0, end , increment=1 )
[매개변수]
start=0
선택. 시작값. (기본값: 0)
end
필수. 종료값. 포함 X
increment=1
선택. 증가폭 (기본값: 1)
[반환값]
start부터 end - 1 까지 increment씩 증가하는 숫자 리스트.
(예) range(1, 6, 2) 경우 : 1, 3, 5 반환.
[예제1] 매개변수 1개 (end)
for x in range(6 ):
print(x, end= " ")
결과값: 0 1 2 3 4 5
[예제2] 매개변수 2개 (start, end)
for x in range(1, 6 ):
print(x, end=" " )
결과값: 1 2 3 4 5
[예제3] 매개변수 3개 경우 (start, end, increment)
for x in range(1, 6 , 2):
print(x, end=" ")
결과값: 1 3 5
[PS 예제1] 사용자 입력값 받아 구간 값으로 구성된 List 생성.
a = int(input("a:"))
b = int(input("b:"))
li = list (range(a, b+1))
print(li)
결과값: a=1, b=5 가정 시, [1, 2, 3, 4, 5]
[PS 예제2] 사용자 입력값 받아 구간 값 표시.
a = int(input("a:"))
b = int(input("b:"))
for i in range (a, b+1) :
print(i, end=" ")
결과값: a=1, b=5 가정 시, 1 2 3 4 5
else 구문
반복문 끝날 때 해당 코드 블록을 한 번 실행.
[예제]
for x in range(3):
print(x, end=" ")
else:
print("완료", end=" ")
결과값: 0 1 2 완료.
안긴 반복문 (= 중첩 for문 = 이중 for문)
바깥쪽 반복문의 리스트 각 항목에 대해 안쪽 반복문을 각각 실행.
(예) 구구단, 주사위 경우의 수 등 표현에 적합.
[예제]
code = ["HTML", "CSS", "JS"]
level = ["초급", "중급", "고급"]
for x in code:
for y in level:
print(x, y)
결과값:
HTML 초급
HTML 중급
HTML 고급
CSS 초급
CSS 중급
CSS 고급
JS 초급
JS 중급
JS 고급
pass 구문
for문에서 실행할 구문 없는 경우 에, pass 구문 추가.
즉, 아무 작업도 안함 . 단지, 들여쓰기 맞춤용 일 뿐임.
주의: pass 구문 없이 비워 두면 에러 발생.
[예제]
for x in [0, 1, 2]:
pass
PS. if 조건문 에서도 사용 가능.
단일 for문 예제 모음
[예제1] 1~n까지 짝수만 출력.
방법1.
n = int(input("n:"))
for i in range(2, n+1, 2 ) :
print(i, end=" ")
방법2 - 홀수 거르기.
n = int(input("n:"))
for i in range(1, n+1) :
if i%2 != 0 :
continue
print(i, end=" ")
방법3. - 짝수만 출력.
n = int(input("n:"))
for i in range(1, n+1) :
if i%2 == 0:
print(i, end=" ")
[예제2] 1~n까지 합 구하기.
n = int(input("n:"))
sum = 0
for i in range(1, n+1) :
sum=sum + i
print(sum, end=" ")
주의: print() 구문이 for 반복문 밖에 위치해야 함.
[예제3] 숫자 5개 입력 받아, (합계, 평균) 구하기.
※ for 반복문 이용해 사용자 입력값 여러 개 받기.
sum=0
x = 5 # 입력 숫자 개수
for i in range(x) :
n = int(input("n:"))
sum = sum + n
print ("합계: ", sum)
print("평균: ", sum/x)
주의: 문자열과 변수를 함께 출력하려면, 쉼표(,)로 연결.
[예제4] 구구단 n단 출력.
※ 문자열 포맷.
n = int(input("n: "))
for i in range(1, 10) :
print('{}*{}={}'.format (n,i,n*i))
주의: format() 메서드 앞에 마침표(.) 찍어야 함.
[예제5] List 내용을 거꾸로 출력.
방법1.
li = [1, 2, 3, 4]
for i in range(len (li)-1,-1,-1):
print(li[i], end=" ")
방법2.
li = [1, 2, 3, 4]
li.reverse()
for i in li:
print(i, end=" ")
결과값: 4 3 2 1
[예제6] 입력 숫자와 일치한 요소까지 출력.
li = [3,6,9,7,4,8,2,5,1]
n = int(input("n:"))
for i in li:
print(i, end=' ')
if i==n:
break
결과값: n == 9 경우, 3 6 9
중첩 for문 예제 모음
[예제1] 구구단 (a단부터 b단까지) 출력
※ a, b 입력 방법 2가지.
방법1.
a = int(input("a: "))
b = int(input("b: "))
for i in range(a, b+1):
for j in range(1, 10) :
print('{}*{}={}'.format(i,j,i*j))
print()
방법2.
a, b = map (int, input("a b: ").split ())
for i in range(a, b+1) :
for j in range(1, 10):
print('{}*{}={}'.format(i,j,i*j))
print()
주의: 아래처럼 하면 에러 남.
a, b = int(input("a b:").split())
[예제2] 주사위 경우의 수
for i in range(1, 7) :
for j in range(1, 7):
print('{},{}'.format(i,j))
print()
주소 복사
랜덤 이동
최신댓글