"8. 반복문"의 두 판 사이의 차이

 
(사용자 3명의 중간 판 9개는 보이지 않습니다)
1번째 줄: 1번째 줄:
 
[[분류:기초]]
 
[[분류:기초]]
 +
 +
<youtube>https://www.youtube.com/watch?v=kuBzbnUUaOI</youtube>
  
 
==개요==
 
==개요==
명령을 일정 횟수만큼 반복수행하게끔.
+
명령을 일정 횟수만큼, 혹은 어떤 조건 안에서 반복수행하게끔.
 
===형태===
 
===형태===
 
기본적으로 조건문의 형태와 동일하다.
 
기본적으로 조건문의 형태와 동일하다.
42번째 줄: 44번째 줄:
 
!방법
 
!방법
 
|-
 
|-
|while
+
|기본형
|
+
|<syntaxhighlight lang="python">
 +
while 0< x <=3:
 +
    x-=1
 +
</syntaxhighlight>
 +
|-
 +
|else
 +
|<syntaxhighlight lang="python">
 +
while 0< x <=3:
 +
    x -= 1
 +
else:
 +
    x += 1
 +
</syntaxhighlight>
 
|}
 
|}
 
=for=
 
=for=
51번째 줄: 64번째 줄:
 
!비고
 
!비고
 
|-
 
|-
|
+
|기본형
 
|<syntaxhighlight lang="python">
 
|<syntaxhighlight lang="python">
 
for 변수 in 자료구조:
 
for 변수 in 자료구조:
64번째 줄: 77번째 줄:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
|변수 갯수가 맞지 않는 경우엔 에러가 난다.
 
|변수 갯수가 맞지 않는 경우엔 에러가 난다.
 +
|-
 +
|else
 +
|<syntaxhighlight lang="python">
 +
for 변수 in 자료구조:
 +
    명령
 +
else:
 +
    명령
 +
</syntaxhighlight>
 +
|
 
|}
 
|}
 
===range===
 
===range===
range() 와 함께 많이 쓴다. 명령에 따라 리스트를 만들어주는 함수이다.
+
반복문은 range() 와 함께 많이 쓴다. 명령에 따라 리스트를 만들어주는 함수이다.(실제 데이터형은 range라는 데이터형으로, 리스트와 구분해서 쓰인다.)
 
{| class="wikitable"
 
{| class="wikitable"
 
!의도
 
!의도
 
!방법
 
!방법
 +
!예시
 +
!결과
 
|-
 
|-
 
|기본형태
 
|기본형태
|range(시작숫자, 종료숫자, 증가량)
+
|range(종료숫자)
range(시작숫자, 종료숫자) #증가량은 1
+
range(시작숫자, 종료숫자, 증가량)
 
+
range(시작숫자, 종료숫자)
range(종료숫자) #시작숫자는 0
+
|
 +
|
 
|-
 
|-
 
|1부터 9까지
 
|1부터 9까지
 
|range(1, 10, 1) #10을 만나면 종료해버린다.
 
|range(1, 10, 1) #10을 만나면 종료해버린다.
 +
|<syntaxhighlight lang="python">
 +
range(10, 1, -1)
 +
</syntaxhighlight>
 +
|
 
|-
 
|-
 
|10부터 1까지
 
|10부터 1까지
 
|range(10, 0, -1)
 
|range(10, 0, -1)
 +
|<syntaxhighlight lang="python">
 +
range(10, 1, -1)
 +
</syntaxhighlight>
 +
|
 +
|}
 +
 +
=== enumerate ===
 +
{| class="wikitable"
 +
!의도
 +
!설명
 +
!예시
 +
|-
 +
|기본형태
 +
|for문을 돌리며 변수와 함께 수를 세주는 역할이 필요할 때.
 +
|<syntaxhighlight lang="python">
 +
for i, x in enumerate(['A', 'B', 'C']):
 +
    # i는 0부터 순차적으로 올라가고,
 +
    # x는 A부터 나온다.
 +
</syntaxhighlight>
 +
|}
 +
 +
=== zip ===
 +
특정 데이터를 커플링하고 싶을 때 사용한다.
 +
{| class="wikitable"
 +
!의도
 +
!설명
 +
!예시
 +
|-
 +
|두 리스트를 하나로
 +
|각각의 n번 원소를 하나의 튜플로 합쳐준다.
 +
[1, 2, 3], ["A", "B", "C"]을
 +
 +
[(1, 'A'), (2, 'B'), (3, 'C')]로.
 +
|<syntaxhighlight lang="python">
 +
pairs = list(zip(list1, list2))
 +
</syntaxhighlight>
 +
|-
 +
|두 리스트를 하나의 사전처럼
 +
|순번이 동일한 리스트가 있고, 이 둘을 동시에 순회해야 할 때.
 +
|<syntaxhighlight lang="python">
 +
for i, j in zip(list1, list2):
 +
    ....
 +
</syntaxhighlight>
 
|}
 
|}
 
=분기문=
 
=분기문=
87번째 줄: 159번째 줄:
 
===break===
 
===break===
 
반복문 안에서 반복문을 깰 때 사용한다. 조건문 안에서 반복문을 깰 때 사용할 수 있다.
 
반복문 안에서 반복문을 깰 때 사용한다. 조건문 안에서 반복문을 깰 때 사용할 수 있다.
 +
 +
자기 바로 위의 반복문을 탈출한다.
 
===continue===
 
===continue===
해당 반복은 수행하지 않고 다음 반복으로 건너뛴다. <code>pass</code>도 동일.
+
해당 반복은 수행하지 않고 다음 반복으로 건너뛴다. 다음 코드의 출력은 0, 1, 3, 4, 5 이다.<syntaxhighlight lang="python">
 +
for i in range(6):
 +
    if i == 2:
 +
        continue
 +
    print(i)
 +
</syntaxhighlight>
 +
=== pass ===
 +
있으나 마나한 기능이지만.. if나 for문 안에서 내용을 들여쓰기 하지 않으면 에러가 나는데, 내용을 나중에 채워넣기 위해 사용하는 구문. 다음과 같은 때에 사용한다.<syntaxhighlight lang="python">
 +
if 1>x:
 +
    pass # 내용은 나중에 넣자.
 +
 
 +
def 함수명():
 +
    pass  # 함수를 정의하긴 하는데, 내용은 나중에 넣자.
 +
 
 +
class 클래스명():
 +
    pass  # 클래스를 정의하긴 하는데, 내용은 나중에 넣자.
 +
</syntaxhighlight>

2022년 11월 25일 (금) 11:29 기준 최신판


1 개요편집

명령을 일정 횟수만큼, 혹은 어떤 조건 안에서 반복수행하게끔.

1.1 형태편집

기본적으로 조건문의 형태와 동일하다.

형태 방법 사용 예시
while
while 조건:
    명령
반복횟수가 명확하지 않을 때.

조건에 따라 돌린다. 조건식이 True일 동안 반복한다.

while 0< x <=3:
    x-=1
for
for 변수 in 자료구조:
    명령
반복횟수가 명확할 때.

자료구조와 함께 사용할 때 쓴다.

자료구조의 요소를 반복하여 변수에 대입해 쓴다.

for x in (1,2,3):
    x-=1

2 while편집

형태 방법
기본형
while 0< x <=3:
    x-=1
else
while 0< x <=3:
    x -= 1
else:
    x += 1

3 for편집

형태 방법 비고
기본형
for 변수 in 자료구조:
    명령
자료구조 안에 또 자료구조가 있을 때
for 변수1, 변수2 in [[1,2],[3,4],[5,6]]
    명령
변수 갯수가 맞지 않는 경우엔 에러가 난다.
else
for 변수 in 자료구조:
    명령
else:
    명령

3.1 range편집

반복문은 range() 와 함께 많이 쓴다. 명령에 따라 리스트를 만들어주는 함수이다.(실제 데이터형은 range라는 데이터형으로, 리스트와 구분해서 쓰인다.)

의도 방법 예시 결과
기본형태 range(종료숫자)

range(시작숫자, 종료숫자, 증가량) range(시작숫자, 종료숫자)

1부터 9까지 range(1, 10, 1) #10을 만나면 종료해버린다.
range(10, 1, -1)
10부터 1까지 range(10, 0, -1)
range(10, 1, -1)

3.2 enumerate편집

의도 설명 예시
기본형태 for문을 돌리며 변수와 함께 수를 세주는 역할이 필요할 때.
for i, x in enumerate(['A', 'B', 'C']):
    # i는 0부터 순차적으로 올라가고,
    # x는 A부터 나온다.

3.3 zip편집

특정 데이터를 커플링하고 싶을 때 사용한다.

의도 설명 예시
두 리스트를 하나로 각각의 n번 원소를 하나의 튜플로 합쳐준다.

[1, 2, 3], ["A", "B", "C"]을

[(1, 'A'), (2, 'B'), (3, 'C')]로.

pairs = list(zip(list1, list2))
두 리스트를 하나의 사전처럼 순번이 동일한 리스트가 있고, 이 둘을 동시에 순회해야 할 때.
for i, j in zip(list1, list2):
    ....

4 분기문편집

실행위치를 이동시키는 명령.

4.1 break편집

반복문 안에서 반복문을 깰 때 사용한다. 조건문 안에서 반복문을 깰 때 사용할 수 있다.

자기 바로 위의 반복문을 탈출한다.

4.2 continue편집

해당 반복은 수행하지 않고 다음 반복으로 건너뛴다. 다음 코드의 출력은 0, 1, 3, 4, 5 이다.

for i in range(6):
    if i == 2:
        continue
    print(i)

4.3 pass편집

있으나 마나한 기능이지만.. if나 for문 안에서 내용을 들여쓰기 하지 않으면 에러가 나는데, 내용을 나중에 채워넣기 위해 사용하는 구문. 다음과 같은 때에 사용한다.

if 1>x:
    pass  # 내용은 나중에 넣자.

def 함수명():
    pass  # 함수를 정의하긴 하는데, 내용은 나중에 넣자.

class 클래스명():
    pass  # 클래스를 정의하긴 하는데, 내용은 나중에 넣자.