• 회원가입
  • 로그인
  • 구글아이디로 로그인

[basic] Python - For (포반복문) ★★★★★

2659  

목차

  1. for 반복문
  2. 문자열 반복
  3. break 구문 - 반복문 탈출
  4. continue 구문 - 건너뛰기
  5. range() 함수 - 특정 횟수 반복
  6. else 구문
  7. 안긴 반복문 (= 중첩 for문 = 이중 for문)
  8. pass 구문
  9. 단일 for문 예제 모음
  10. 중첩 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()

 



분류 제목
basic Python - Home (입문) - 이념 / 추천 링크
basic Python - Intro (소개) - 용도・특징
basic Python - Start (시작) - 파이썬 설치/실행/버전확인
basic Python - Syntax (구문) - 들여쓰기・변수・주석
basic Python - Comment (주석)
basic Python - Variable (변수)
basic Python - DataType (데이터타입) - 자료형
basic Python - Number (숫자)
basic Python - Casting (데이터 타입 변경) - 자료형 변환
basic Python - String (문자열) ★ ※ 색인번호 (= 인덱스) 개념.
basic Python - Boolean (참거짓)
basic Python - Operator (연산자)
basic Python - List (리스트) ★ - 변경 가능한 모음
basic Python - Tuple (투플/튜플) - 변경 불가 모음
basic Python - Set (셋/세트) - '순서(=색인)' 없고, 중복 허용 않는 데이터 모음.
basic Python - Dictionary (딕셔너리) - Key:value 쌍으로 구성된 모음
basic Python - if...elif...else - (이프조건문) ※ 3항연산자 = 삼항연산자
basic Python - While (와일반복문) - 와일문
basic Python - For (포반복문) ★★★★★
basic Python - Function (함수)
1/24
목록
찾아주셔서 감사합니다. Since 2012