7장 반복


* for문

  - 설명 : 실행 횟수가 정해진 반복문으로, 조건문을 지정해 얼마나 반복할지 지정할 수 있다.

  - 형식 

    for [변수] in [리스트] :

      [for-블록]

  

    + [리스트] : 탐색을 수행할 리스트 객체를 놓는다.

    + [변수] : 탐색을 수행할 리스트에서 하나씩 데이터 객체를 꺼내온다.

    + [블록] : 들여쓰리고 블록을 구분한다. 변수에 지정된 데이터 객체를 블록에서 사용한다.

    

  - 특징 

    1) [리스트]에 파일 객체를 놓으면, readline() 메소드를 호출하는 것과 같이 파일을 한줄씩 읽어와 [변수]에 한줄씩 할당한다.

    2) [리스트]에 문자열을 놓으면, 문자 하나씩 읽어와 [변수]에 문자를 할당한다.

      + 예제

        >> for c in 'test' : 

        ..   print c

        ..

        t

        e

        s

        t

        

* for문 활용 

1. 자바나 C에서 처럼 for문으로 인덱스 접근을 통해 루프 사용방법

  - 설명 : 인덱스 접근을 위해 숫자 리스트을 만들어 주는 range() 함수와 리스트 길이를 알아내는 len() 함수를 이용한다.

  - 사용법 : len() 함수로 리스트 길이를 가져온 이후, 그 0부터 길이만큼 숫자 리스트를 range() 함수로 만든다.

  - 형식 

    for index in range(len([리스트])) : 

      print [리스트][index]


2. enumerate()를 활용한 for문

  - 설명 : enumerate() 함수를 사용하면 리스트의 인덱스와 값을 쌍으로 하는 값을 사용할 수 있다.

  - 예제

    >> list = "s a m p l e".split()

    >> for map in enumerate(list) :

    ..   print map

    ..

    (0,'s')

    (1,'a')

    (2,'m')

    (3,'p')

    (4,'l')

    (5,'e')

    

  - 추가 형식 : 파이썬은 다중 값 할당을 지원한다.

    >> list = [1, 2, 3]

    >> for (index, value) in enumerate(list) :

    ..    list[index] = 2 * value

    ..    print list

    ..

    [2,2,3]

    [2,4,3]

    [2,4,6]

    

* enumerate 함수

  - 설명 : 리스트, 튜플, 무자열 같은 시퀀스 타입에 대해 인덱스, 값으로 구성된 리스트를 반환한다.

  -> (0, seq[0]), (1, seq[1]), (2, seq[2]), ...

  

* range 함수

  - 설명 : 숫자 리스트를 생성하는 내장 함수

  - 형식 : range([시작값], [종료값], [간격값])

    + [시작값] : 숫자 리스트를 시작하는 정수

    + [종료값] : 숫자 리스트를 종료하는 정수의 +1 값

    + [간격값] : 숫자 리스트의 간격을 지정할 수 있다.

      -> 시작값은 생략 가능하며, 생략하면 0부터 종료값 -1까지의 숫자 리스트가 생성된다.

      -> 간격값 또한 생략하며, 기본으로 숫자 간격이 1로 설정 된다.

      -> 간격값은 음스로 지정할 수 있으나, 이때 반드시 시작값이 종료값보다 커야한다.

      

  - 예제 

    >> range(0, 4)

    [0, 1, 2, 3]

    >> range(1)

    [0]

    >> range(0)

    []

    >> range(1, 5, 2)

    [1, 3]

    

* 다중 값 할당

  - 설명 : 파이썬은 여러 값을 쓰고 한꺼번에 할당 할 수 있다. 이 값은 리스트, 문자열, 또는 다른 시퀀스 타입에 있더라도 동작한다. 대신 할당할 변수 개수와 값의 개수가 일치해야만 한다.

  

  - 예제

    >> x, y, z = 1, 2  # 우측과 좌측의 개수가 달라 에러 발생

    >> x, y = 1, 2     # 우측 변수 개수 = 좌측 변수 개수

    >> a,b,c = 'STR'

    >> a,b,c = [2,3,4]

    

* while 문

  - 설명 : 조건형 루프라 부르며, 조건이 참일 동안 반복하는 특징이 있다.

  - 형식

    while [조건] : 

      [블록]

      

* 반복문 제어

  - 설명 : java에서 반복문 제어를 위해 break와 continue 지시어를 사용하는 것처럼, 파이썬에서도 동일한 지시어를 사용해 반복문을 제어할 수 있다.

    -> break : 즉시 루프의 블록을 벗어난다.

    -> continue : 다음 반복으로 건너 뛴다.

    

*** 반복문과 조건문을 사용할 때 주의사항

1. 이해하기 쉬운 구조로 코드를 작성할 수 있게 주의를 기울인다.

2. 중첩되는 양을 최대한 줄인다. 

Posted by 빌리 :