Python | for 반복문

Kate Jung·2020년 12월 10일
0

Python

목록 보기
2/4
post-thumbnail

for 반복문

for와 range

for 변수 in range(횟수):
    반복할 코드
  • 방식: range에서 in으로 숫자를 하나하나 꺼내서 반복

  • for는 숫자를 꺼낼 때마다 코드를 실행

  • 동작과정

for와 range 응용

1. 시작, 끝, 증가폭 정하기

  • 형식
    for 변수 in range(시작,, 증가폭):     # 시작~(끝-1)까지 증가폭만큼 반복
        반복할 코드
  • ※ 주의
    range는 숫자가 증가하는 기본 값이 양수 1임.

2. 숫자 감소 시키기

음수 증가폭

 for 변수 in range(시작,, 음수 증가폭):   # 증가폭 만큼 시작~(끝+1)까지 감소
     반복할 코드

reversed 사용

  • 형식
        # 1.
        for 변수 in reversed(range(시작,, 증가폭)):  # 값이 뒤에서 부터 나옴.
            반복할 코드

        # 2.
        for 변수 in reversed(range(횟수)):
            반복할 코드

3. 입력 받은 횟수대로 반복하기

 count=int(input('입력할 횟수를 입력하세요: '))

 for i in range(count):
     print('Hello, world', i)

for와 range 심화 (계단식 별 출력)

1. 중첩 루프 사용

예시

     for i in range(5):          # 5번 반복. 바깥쪽 루프는 세로 방향
         for j in range(5):      # 5번 반복. 안쪽 루프는 가로 방향
             print('j:', j, sep='', end=' ')    # j값 출력. end에 ' '를 지정하여 줄바꿈 대신 한 칸 띄움
         print('i:', i, '\\n', sep='')    # i값 출력, 개행 문자 모양도 출력
                                          # 가로 방향으로 숫자를 모두 출력한 뒤 다음 줄로 넘어감
                                          # (print는 기본적으로 출력 후 다음 줄로 넘어감)
  • sep: ,(쉼표) 대체

  • end: 줄 바꿈 대체

    ↓ 실행 결과

2. 사각형으로 별 출력하기

예제

    for i in range(5):            # 5번 반복. 바깥쪽 루프는 세로 방향
        for j in range(5):        # 5번 반복. 안쪽 루프는 가로 방향
            print('*', end='')    # 별 출력. end에 ''를 지정하여 줄바꿈을 하지 않음
        print()    # 가로 방향으로 별을 다 그린 뒤 다음 줄로 넘어감
                   # (print는 출력 후 기본적으로 다음 줄로 넘어감)

    # 실행 결과
    *****
    *****
    *****
    *****
    *****

핵심

→ 안쪽 반복문 (가로를 표시함)

  • sep: ,(쉼표) 대체
  • end: 줄 바꿈 대체

→ 바깥 반복문 (세로를 표시함)

  • range( ) = 몇 줄 표시하고 싶은지
  • print() = 줄바꿈 의미

사각형 모양 바꾸는 법

  • 바깥 range X 내부 range 크기의 사각형

    → 즉, 바깥 / 내부 range ( ) 로 사각형의 크기를 조절한다.

3. 계단식으로 별 출력하기

  • 계단식 별 특징

    ⇒ j <= i 이다.

    i=0 → j=0

    i=1 → j=0,1

    ...(생략)

    i=4 → j=0,1,2,3,4

  • 예제

    for i in range(5):        # 0부터 4까지 5번 반복. 세로 방향
        for j in range(5):    # 0부터 4까지 5번 반복. 가로 방향
            if j <= i:                # 세로 방향 변수 i만큼
                print('*', end='')    # 별 출력. end에 ''를 지정하여 줄바꿈을 하지 않음
        print()    # 가로 방향으로 별을 다 그린 뒤 다음 줄로 넘어감
                   # (print는 출력 후 기본적으로 다음 줄로 넘어감)

    # Python Shell
    *
    **
    ***
    ****
    *****

4. 대각선으로 별 출력하기

  • 대각선 별 특징

    ⇒ 가로/세로 방향의 변수 값이 같을 때 별 출력 (j == i)

    ⇒ 같지 않을 때 공백 출력

    i=0 → j=0

    i=1 → j=1

    ...(생략)

    i=4 → j=4

  • 예제 1 ( j == i 만 입력 시)

    for i in range(5):        # 0부터 4까지 5번 반복. 세로 방향
        for j in range(5):    # 0부터 4까지 5번 반복. 가로 방향
            if j == i:                # 세로 방향 변수와 같을 때
                print('*', end='')    # 별 출력. end에 ''를 지정하여 줄바꿈을 하지 않음
        print()    # 가로 방향으로 별을 다 그린 뒤 다음 줄로 넘어감
                   # (print는 출력 후 기본적으로 다음 줄로 넘어감)

    # # Python Shell
    *
    *
    *
    *
    *
  • 예제 2 ( j == i , 공백 입력 시)
    for i in range(5):        # 0부터 4까지 5번 반복. 세로 방향
        for j in range(5):    # 0부터 4까지 5번 반복. 가로 방향
            if j == i:                # 세로 방향 변수와 같을 때
                print('*', end='')    # 별 출력. end에 ''를 지정하여 줄바꿈을 하지 않음
            else:                     # 세로 방향 변수와 다를 때
                print(' ', end='')    # 공백 출력. end에 ''를 지정하여 줄바꿈을 하지 않음
        print()    # 가로 방향으로 별을 다 그린 뒤 다음 줄로 넘어감
                   # (print는 출력 후 기본적으로 다음 줄로 넘어감)

    # Python Shell
    *
     *
      *
       *
        *

시퀀스 객체로 반복하기

  • for에 range 대신 시퀀스 객체(리스트, 튜플, 문자열 등)를 넣어도 됨

  • 예시

    # 1. 리스트
    >>> a=[10,20,30,40,50]    # 10부터 차례대로 나옴
    >>> for i in a:
    					print(i)

    # 2. 문자열 (문자 하나씩 나옴)
    >>> for i in 'Python':
    	print(i)                # print(i,end=' ')로 하면 문자열이 1열로 나온다.

    P
    y
    t
    h
    o
    n
  • reversed

    • 형식

      reversed(시퀀스객체)

    • 특성

      시퀀스 객체를 뒤집어줌 (원본 객체 자체는 바뀌지 않음)

    >>> for i in reversed('Python'):
    	print(i,end=' ')

    n o h t y P

for 반복문 중요사항

  • 주로 사용: 반복 개수가 정해져 있을 때
  • 중요: range외에도 시퀀스 객체 사용 가능

for/while 반복문 차이점

  • while 반복문: 반복 횟수가 정해져 있지 않을 때 자주 사용

  • for 반복문: 반복 횟수가 정해져 있을 때 자주 사용함.

profile
복습 목적 블로그 입니다.

0개의 댓글