python - 기본 문법

python - 반복문

초무제 2022. 3. 28. 10:56
반응형

while문

while문은 조건이 참(True)인 동안 반복합니다.

a = 0
while a < 10:
    print(a)
    a = a + 1

위 코드의 조건은 a < 10 즉 a가 10보다 작다면 while문 안에 있는 코드를 실행하고 아니면 넘어갑니다. 조건문과 비슷한 느낌입니다. 그리고 와일 문 안에는 조건문의 결과(참 거짓)를 바꿔줄 코드가 필요합니다. 위 코드에서는 a = a + 1이 a 값을 1씩 증가시키면서 반복이 10번 돌면 a가 10이 돼서 a < 10 이 거짓(False)이 되기 때문에 더 이상 반복문이 실행되지 않습니다.

while문 - 무한루프

while문 조건 부분에 1을 쓰면 python에서 1은 불수로 True 이기 때문에 무한루프(무한하게 반복되는 것)가 됩니다.

while 1:
    print("반복중")

 

무한루프를 쓸 때 루프를 빠져나갈 코드를 쓰지 않으면 코드가 끝나지 않기 때문에 프로그램을 끄거나 잘못하면 컴퓨터까지 꺼야 하는 상황이 될 수 있습니다. 따라서 루프를 빠져나가는 코드를 써야 합니다.

그래서 그 빠져나가는 코드는 break입니다. 먼저 예제를 보여드리겠습니다.

a = 0
while 1:
    print("반복중")
    a = a + 1
    if a > 100:
        print("반복 중단")
        break

이렇게 while문 안에 조건문을 넣어서 a > 100a가 100보다 크다면 print("반복 중단") 반복 중단을 출력하고

break 하여 while문의 반복이 중단됩니다.

 

continue

continue문은 break와 다르게 반복문을 종료하는 코드가 아니라 continue 아래 있는 코드는 실행하지 않고 다음 반복을 실행시키는 코드입니다.

a = 0
while a < 100:
    a = a + 1
    if a % 2 == 1:
        continue
    print(a,"는 짝수입니다.")

(a % 2는 a를 2로 나눈 나머지라는 뜻입니다.)

100 이하의 짝수를 출력하는 코드입니다. 조건문에서 a를 2로 나눴을 때 나머지가 1이면 홀수이기 때문에 continue를 하여 출력문을 건너뛰고 a를 2로 나눴을 때 나머지가 1이 아니면 조건문 안에 있는 코드가 실행되지 않기 때문에 print(a, "는 짝수입니다.") 코드가 실행되어 a는 짝수입니다. 가 출력됩니다.

 

for 문

for문의 기본형은 for 변수 in 문자열 or 리스트 or 범위 이런 형식으로 작성됩니다.

a = "안녕하세요"
for i in a:
    print(i)

for i(변수) in a(문자열)

변수 이름은 보통 i 나 j를 많이 씁니다. in 은 문자열이나 리스트의 첫 번째 값을 i에 넣습니다.  i값은 변수이기 때문에 for 문 안에서 자유자재로 활용 가능합니다. 그리고 다음 반복에서 in이 문자열이나 리스트의 다음 값이 있다면 i에 그 값을 넣고 반복을 실행시키고 다음 값이 없다면 반복을 중단시킵니다. 따라서 for에 문자열이나 리스트를 넣으면 그 문자열이나 리스트의 길이만큼 반복되는 것이죠.

안
녕
하
세
요

프로그램을 실행시키면 출력은 이런 식으로 됩니다.

그리고 in 뒤에 범위를 쓰려면 range()를 쓰면 됩니다.

for i in range(5):
    print(i)

이렇게 range() 괄호 안에 숫자를 넣으면 기본적으로 i(변수)에 0부터 그 숫자 - 1까지 집어넣습니다. 위의 코드에서는

0부터 4까지 0, 1, 2, 3, 4 가 순서대로 대입되어 총 5번 반복하게 되는 것이죠.

range() 안에 문자열이나 리스트의 길이만큼 반복하고 싶다면 len()을 쓰면 됩니다. len()은 괄호 안에 있는 문자열이나 리스트의 길이를 알려주는 코드입니다.

a = "안녕하세요"
for i in range(len(a)):
    print(i)

이렇게 range(len(a)) 를 쓰면 문자열 a의 길이만큼 반복할 수 있는 거죠. 실제로 print(len(a)) 를 해보면 5가 나옵니다.

0
1
2
3
4

위 코드를 실행하면 출력은 이렇게 나옵니다. 5번 반복하여 0부터 4까지 i에 대입됩니다.

 

그럼 for문을 활용하여 자신이 원하는 단의 구구단을 출력하는 프로그램을 만들어보겠습니다.

a = int(input())
for i in range(1,10):
    print(a , "*", i, "=", a*i)

이렇게 3줄만으로 구구단을 출력하는 프로그램을 만들 수 있습니다. 첫 번째 줄에 int(input())은 원래 input()을 쓰면 자동적으로 문자열로 변수에 대입되지만 int()를 씌워주면 정수형으로 a에 들어갑니다. range(1,10)은 원래는 범위가 0부터이지만 1부터 시작하겠다고 정하는 겁니다. 반대로 range(10, 0, -1) 이런 식으로 적으면 10부터 1까지 1씩 줄어들면서 변수에 들어갑니다.

**range()는 항상 마지막수는 포함되지 않는데 1부터 9까지 출력하려면 (1, 10)으로 써야 합니다.**

반응형

'python - 기본 문법' 카테고리의 다른 글

python - 함수  (3) 2022.03.29
python - 조건문  (0) 2022.03.27
python 변수 자료형  (0) 2022.03.27
python - 변수  (0) 2022.03.27
python - 출력문  (2) 2022.03.27