"Anaconda Prompt 3-2) 제어문 학습 ; while 문(반복문) 그리고 연습문제"

Anaconda Prompt 3-2) 제어문 학습 ; while 문(반복문) 그리고 연습문제 

반복문 (Loop Statements)

반복문은 특정 코드 블록을 여러 번 실행합니다.

for 문

  • 시퀀스(리스트, 튜플, 문자열 등)의 각 항목에 대해 반복합니다.
for item in sequence:
    # 각 항목에 대해 실행할 코드

while 문

  • 조건이 참인 동안 코드 블록을 반복 실행합니다.
while condition:
    # 조건이 참일 때 반복할 코드




==== 다음은 while 문에 대한 연습 문제 ====

연습문제 1: 사용자 입력 합계

문제: 사용자가 0을 입력할 때까지 숫자를 입력받아, 입력된 숫자들의 합계를 출력하는 프로그램을 작성하세요.

연습문제 1: 사용자 입력 합계

입력순 ; 9 -> 2 -> 6 -> 0

=> 설명)
이 코드는 사용자가 0을 입력할 때까지 숫자를 입력받아, 입력된 숫자들의 합계를 계산하는 프로그램입니다. 각 부분을 단계별로 설명해 드리겠습니다.

total = 0

total 변수는 0으로 초기화됩니다. 이 변수는 입력된 숫자들의 합계를 저장하는 데 사용됩니다.

number = int(input('숫자를 입력하세요 (종료하려면 0을 입력하세요): '))

  • input() 함수는 사용자로부터 문자열 형태의 입력을 받습니다.
  • int() 함수는 입력된 문자열을 정수로 변환합니다.
  • 따라서, number 변수에는 사용자가 입력한 정수가 저장됩니다.

  • while number != 0:

  • while 반복문은 number 변수가 0이 아닌 동안 반복됩니다.
  • 즉, 사용자가 0을 입력할 때까지 반복문이 계속 실행됩니다.

  •     total += number

  • 현재 number 값을 total 변수에 더합니다.
  • 이는 입력된 숫자들을 누적하여 합계를 계산하는 과정입니다.

  •     number = int(input('숫자를 입력하세요 (종료하려면 0을 입력하세요): '))

  • 사용자로부터 다시 숫자를 입력받아 number 변수에 저장합니다.
  • 입력된 숫자가 0이면 반복문이 종료되고, 그렇지 않으면 다시 total에 더합니다.

  • print(f"입력된 숫자들의 합계는 {total}입니다.")

    • print() 함수는 f-string을 사용하여 최종 합계를 출력합니다.
    • total 변수에 저장된 값(즉, 입력된 숫자들의 합계)을 출력합니다.

    예시 실행 과정

    1. 프로그램이 시작되면, total은 0으로 초기화됩니다.
    2. 사용자가 숫자를 입력합니다.
    3. 사용자가 입력한 숫자가 0이 아니면, 해당 숫자가 total에 더해집니다.
    4. 사용자가 0을 입력할 때까지 위 과정이 반복됩니다.
    5. 사용자가 0을 입력하면 반복문이 종료되고, 최종 합계가 출력됩니다.

    예시 입력과 출력

    • 입력: 5, 10, -3, 0
    • 출력: 입력된 숫자들의 합계는 12입니다.

    요약

    이 코드는 다음과 같은 작업을 수행합니다:

    1. 사용자로부터 숫자를 입력받습니다.
    2. 입력된 숫자가 0이 아니면, 그 숫자를 total 변수에 더합니다.
    3. 사용자가 0을 입력할 때까지 위 과정을 반복합니다.
    4. 최종적으로 입력된 숫자들의 합계를 출력합니다.

    이 코드는 while 문과 사용자 입력을 결합하여 조건에 따라 반복 작업을 수행하는 방법을 보여줍니다.


    연습문제 2: 비밀번호 맞추기 게임

    문제: 사용자가 올바른 비밀번호를 입력할 때까지 반복해서 비밀번호를 입력받는 프로그램을 작성하세요. 올바른 비밀번호는 python123으로 설정합니다.

    연습문제 2: 비밀번호 맞추기 게임

    => 설명)
    이 코드는 사용자가 올바른 비밀번호를 입력할 때까지 반복해서 비밀번호를 입력받는 프로그램입니다. 올바른 비밀번호는 "python123"으로 설정되어 있습니다. 각 부분을 단계별로 설명해 드리겠습니다.

    correct_password = "python123"

    correct_password 변수에 올바른 비밀번호인 "python123"을 저장합니다.

    password = input('비밀번호를 입력하세요: ')

  • input() 함수는 사용자로부터 문자열 형태의 입력을 받습니다.
  • 사용자가 입력한 비밀번호가 password 변수에 저장됩니다.

  • while password != correct_password:

  • while 반복문은 password 변수가 correct_password 변수와 같지 않은 동안 반복됩니다.
  • 즉, 사용자가 올바른 비밀번호를 입력할 때까지 반복문이 계속 실행됩니다.

  •     print("비밀번호가 틀렸습니다. 다시 시도하세요.")

  • print() 함수는 "비밀번호가 틀렸습니다. 다시 시도하세요."라는 메시지를 출력합니다.
  • 사용자가 입력한 비밀번호가 올바르지 않을 때마다 이 메시지가 출력됩니다.

  •     password = input('비밀번호를 입력하세요: ')

  • 사용자로부터 다시 비밀번호를 입력받아 password 변수에 저장합니다.
  • 사용자가 올바른 비밀번호를 입력할 때까지 이 과정이 반복됩니다.

  • print("비밀번호가 맞습니다. 로그인 성공!")
    • 사용자가 올바른 비밀번호를 입력하면 while 반복문이 종료되고, "비밀번호가 맞습니다. 로그인 성공!"이라는 메시지를 출력합니다.

    예시 실행 과정

    1. 프로그램이 시작되면, correct_password"python123"으로 설정됩니다.
    2. 사용자가 비밀번호를 입력합니다.
    3. 사용자가 입력한 비밀번호가 올바른 비밀번호와 일치하지 않으면, "비밀번호가 틀렸습니다. 다시 시도하세요." 메시지가 출력되고 다시 비밀번호를 입력받습니다.
    4. 사용자가 올바른 비밀번호를 입력할 때까지 이 과정이 반복됩니다.
    5. 사용자가 올바른 비밀번호를 입력하면 반복문이 종료되고, "비밀번호가 맞습니다. 로그인 성공!" 메시지가 출력됩니다.

    예시 입력과 출력

    • 입력: wrongpass, password123, python123
    • 출력
    비밀번호를 입력하세요: wrongpass
    비밀번호가 틀렸습니다. 다시 시도하세요.
    비밀번호를 입력하세요: password123
    비밀번호가 틀렸습니다. 다시 시도하세요.
    비밀번호를 입력하세요: python123
    비밀번호가 맞습니다. 로그인 성공!

    요약

    이 코드는 다음과 같은 작업을 수행합니다:

    1. 사용자로부터 비밀번호를 입력받습니다.
    2. 입력된 비밀번호가 올바른 비밀번호와 일치하지 않으면, 다시 입력을 요구합니다.
    3. 사용자가 올바른 비밀번호를 입력할 때까지 이 과정을 반복합니다.
    4. 올바른 비밀번호가 입력되면 로그인 성공 메시지를 출력합니다.

    이 코드는 while 문과 조건문을 결합하여 사용자 입력을 처리하고, 올바른 입력을 받을 때까지 반복 작업을 수행하는 방법을 보여줍니다.



    연습문제 3: 1부터 10까지 출력

    문제: while 문을 사용하여 1부터 10까지의 숫자를 출력하는 프로그램을 작성하세요.

    연습문제 3: 1부터 10까지 출력

    => 설명)
    이 코드는 while 문을 사용하여 1부터 10까지의 숫자를 출력하는 간단한 프로그램입니다. 각 부분을 단계별로 설명해 드리겠습니다.

    i = 1

    i 변수를 1로 초기화합니다. 이 변수는 반복문 내에서 사용되는 루프 카운터입니다.

    while i <= 10:

  • while 반복문은 i 변수가 10보다 작거나 같은 동안 반복됩니다.
  • 즉, i가 1에서 10까지의 값일 때 반복문이 계속 실행됩니다.

  •     print(i)

  • print() 함수는 현재 i 값을 출력합니다.
  • 반복문이 실행될 때마다 i의 현재 값이 출력됩니다.

  •     i += 1

    • i 변수의 값을 1 증가시킵니다.
    • 이는 i = i + 1과 동일한 표현입니다.
    • 반복문이 한 번 실행될 때마다 i 값이 1씩 증가하여 다음 반복으로 넘어갑니다.

    실행 과정

    1. 프로그램이 시작되면 i는 1로 초기화됩니다.
    2. while 조건문이 i <= 10을 검사합니다.
      • 초기에는 i가 1이므로 조건은 참입니다.
    3. print(i)가 실행되어 1이 출력됩니다.
    4. i += 1이 실행되어 i가 2가 됩니다.
    5. 반복문이 다시 실행됩니다.
      • while 조건문이 i <= 10을 검사합니다.
      • i가 2이므로 조건은 여전히 참입니다.
    6. print(i)가 실행되어 2가 출력됩니다.
    7. i += 1이 실행되어 i가 3이 됩니다.
    8. 이 과정이 i가 11이 될 때까지 반복됩니다.
    9. i가 11이 되면 while 조건문이 거짓이 되어 반복문이 종료됩니다.

    요약

    이 코드는 다음과 같은 작업을 수행합니다:

    1. i 변수를 1로 초기화합니다.
    2. i가 10 이하인 동안 반복문을 실행합니다.
    3. 반복문 내에서 현재 i 값을 출력하고, i를 1씩 증가시킵니다.
    4. i가 11이 되면 반복문이 종료됩니다.

    이 코드는 while 문을 사용하여 루프 카운터를 증가시키면서 반복 작업을 수행하는 기본적인 방법을 보여줍니다.


    연습문제 4: 짝수 찾기

    문제: 사용자가 0을 입력할 때까지 정수를 입력받아, 짝수만 출력하는 프로그램을 작성하세요.

    연습문제 4: 짝수 찾기

    => 설명)
    이 코드는 사용자가 0을 입력할 때까지 정수를 입력받아, 입력된 정수가 짝수인지 여부를 판단하고 짝수일 경우 이를 출력하는 프로그램입니다. 각 부분을 단계별로 설명해 드리겠습니다.

    number = int(input('정수를 입력하세요 (종료하려면 0을 입력하세요): '))

  • input() 함수는 사용자로부터 문자열 형태의 입력을 받습니다.
  • int() 함수는 입력된 문자열을 정수로 변환합니다.
  • 변환된 정수는 number 변수에 저장됩니다.

  • while number != 0:

  • while 반복문은 number 변수가 0이 아닌 동안 반복됩니다.
  • 즉, 사용자가 0을 입력할 때까지 반복문이 계속 실행됩니다.

  •     if number % 2 == 0:

  • if 조건문은 number 변수를 2로 나눈 나머지가 0인지 확인합니다.
  • 나머지가 0이면, number는 짝수입니다.

  •         print(f"{number}는 짝수입니다.")

  • print() 함수는 현재 number 값을 출력합니다.
  • f-string을 사용하여 "number는 짝수입니다."라는 문자열을 출력합니다.

  •     number = int(input('정수를 입력하세요 (종료하려면 0을 입력하세요): '))

  • 사용자로부터 다시 정수를 입력받아 number 변수에 저장합니다.
  • 사용자가 0을 입력하면 반복문이 종료되고, 그렇지 않으면 다시 위 과정을 반복합니다.

  • 실행 과정

    1. 프로그램이 시작되면, 사용자에게 정수를 입력하라는 메시지가 출력됩니다.
    2. 사용자가 정수를 입력하고, 그 정수가 number 변수에 저장됩니다.
    3. while 조건문이 number가 0이 아닌지 확인합니다.
    4. 만약 number가 0이 아니면, 다음 과정을 수행합니다:
      • if 조건문이 number가 짝수인지 확인합니다.
      • 만약 number가 짝수이면, 해당 숫자가 짝수임을 출력합니다.
      • 사용자에게 다시 정수를 입력하라는 메시지가 출력됩니다.
    5. 사용자가 0을 입력하면 while 조건문이 거짓이 되어 반복문이 종료됩니다.
    정수를 입력하세요 (종료하려면 0을 입력하세요): 4
    4는 짝수입니다.
    정수를 입력하세요 (종료하려면 0을 입력하세요): 7
    정수를 입력하세요 (종료하려면 0을 입력하세요): 8
    8는 짝수입니다.
    정수를 입력하세요 (종료하려면 0을 입력하세요): 0

    요약

    이 코드는 다음과 같은 작업을 수행합니다:

    1. 사용자로부터 정수를 입력받습니다.
    2. 입력된 정수가 0이 아닌 동안 반복문이 계속 실행됩니다.
    3. 입력된 정수가 짝수이면, 해당 숫자가 짝수임을 출력합니다.
    4. 사용자에게 다시 정수를 입력받아 반복문을 계속합니다.
    5. 사용자가 0을 입력하면 프로그램이 종료됩니다.

    이 코드는 while 문과 if 문을 사용하여 사용자 입력을 처리하고 조건에 따라 특정 작업을 수행하는 방법을 보여줍니다.


    연습문제 5: 숫자 맞추기 게임

    문제: 1부터 100까지의 숫자 중 임의의 숫자를 맞추는 게임을 작성하세요. 사용자가 숫자를 맞출 때까지 계속 입력받으며, 입력된 숫자가 더 큰지 작은지를 알려주세요.

    연습문제 5: 숫자 맞추기 게임

    => 설명)
    이 코드는 1부터 100 사이의 임의의 숫자를 맞추는 숫자 맞추기 게임입니다. 사용자가 올바른 숫자를 입력할 때까지 반복적으로 추측을 입력받고, 입력된 숫자가 목표 숫자보다 큰지 작은지를 알려줍니다. 각 부분을 단계별로 설명하겠습니다.

    import random

    random 모듈을 임포트합니다. random 모듈은 임의의 숫자를 생성하는 데 사용됩니다.

    target = random.randint(1, 100)

  • random.randint(1, 100) 함수는 1부터 100 사이의 임의의 정수를 생성합니다.
  • 생성된 정수는 target 변수에 저장됩니다. 이 숫자가 사용자가 맞춰야 할 목표 숫자입니다.

  • guess = int(input('1부터 100 사이의 숫자를 맞춰보세요: '))

  • 사용자로부터 1부터 100 사이의 숫자를 입력받습니다.
  • 입력된 값은 문자열 형태이므로 int() 함수로 정수로 변환하여 guess 변수에 저장됩니다.

  • while guess != target:

    while 반복문은 사용자가 입력한 guess 값이 target 값과 다를 때 계속 실행됩니다.

        if guess < target:
            print("더 큰 숫자입니다.")
        else:
            print("더 작은 숫자입니다.")

  • if 조건문은 사용자가 입력한 guess 값이 target 값보다 작은지 확인합니다.
  • guesstarget보다 작으면 "더 큰 숫자입니다."를 출력합니다.
  • 그렇지 않으면 "더 작은 숫자입니다."를 출력합니다.

  •     guess = int(input('다시 시도해보세요: '))

    사용자로부터 다시 숫자를 입력받아 guess 변수에 저장합니다.

    print("축하합니다! 숫자를 맞췄습니다.")

    while 반복문이 종료된 후, 사용자가 target 값을 맞추면 축하 메시지를 출력합니다.

    실행 과정

    1. 프로그램이 시작되면 random.randint(1, 100)을 통해 1부터 100 사이의 임의의 숫자가 생성되어 target 변수에 저장됩니다.
    2. 사용자에게 1부터 100 사이의 숫자를 입력하라는 메시지가 출력되고, 입력된 숫자가 guess 변수에 저장됩니다.
    3. while 반복문이 실행되어 guess 값이 target 값과 다른 동안 반복됩니다.
    4. if 조건문이 guess 값이 target 값보다 작은지 확인하고, 그에 따라 "더 큰 숫자입니다." 또는 "더 작은 숫자입니다." 메시지를 출력합니다.
    5. 사용자가 다시 숫자를 입력하고, 새로운 guess 값이 target 값과 같을 때까지 반복합니다.
    6. 사용자가 target 값을 맞추면 반복문이 종료되고 "축하합니다! 숫자를 맞췄습니다." 메시지가 출력됩니다.

    예시 실행 과정

    입력 및 출력:

    1부터 100 사이의 숫자를 맞춰보세요: 50
    더 큰 숫자입니다.
    다시 시도해보세요: 75
    더 작은 숫자입니다.
    다시 시도해보세요: 60
    더 큰 숫자입니다.
    다시 시도해보세요: 70
    더 작은 숫자입니다.
    다시 시도해보세요: 65
    더 큰 숫자입니다.
    다시 시도해보세요: 68
    축하합니다! 숫자를 맞췄습니다.

    요약

    이 코드는 다음과 같은 작업을 수행합니다:

    1. 1부터 100 사이의 임의의 숫자를 생성합니다.
    2. 사용자가 숫자를 맞출 때까지 반복적으로 추측을 입력받습니다.
    3. 사용자가 입력한 숫자가 목표 숫자보다 큰지 작은지를 알려줍니다.
    4. 사용자가 숫자를 맞추면 프로그램을 종료하고 축하 메시지를 출력합니다.

    이 코드는 while 문과 if-else 조건문을 사용하여 사용자 입력을 처리하고 반복적인 작업을 수행하는 방법을 보여줍니다.



    연습문제 6: 사용자 이름 반복 출력

    문제: 사용자가 이름을 입력하면, 그 이름을 사용자가 원하는 횟수만큼 출력하는 프로그램을 작성하세요. 사용자가 0을 입력하면 프로그램을 종료합니다.

    연습문제 6: 사용자 이름 반복 출력

    => 설명)
    이 코드는 사용자가 이름과 출력 횟수를 입력하면, 해당 이름을 지정한 횟수만큼 출력하는 프로그램입니다. 사용자가 0을 입력하면 프로그램이 종료됩니다. 각 부분을 단계별로 설명하겠습니다.

    name = input('이름을 입력하세요: ')

    사용자로부터 이름을 입력받아 name 변수에 저장합니다.

    count = int(input('출력할 횟수를 입력하세요 (종료하려면 0을 입력하세요): '))

  • 사용자로부터 이름을 출력할 횟수를 입력받아 count 변수에 저장합니다.
  • input() 함수는 문자열을 반환하므로 int() 함수를 사용하여 정수로 변환합니다.

  • while count != 0:

  • while 반복문은 count 변수가 0이 아닌 동안 계속 실행됩니다.
  • 사용자가 0을 입력하면 반복문이 종료됩니다.

  •     i = 0
        while i < count:
            print(name)
            i += 1

  • 내부의 while 반복문은 i 변수가 count보다 작은 동안 계속 실행됩니다.
  • print(name) 명령어는 name 변수를 출력합니다.
  • i += 1i 변수를 1씩 증가시킵니다. 이를 통해 이름을 count 횟수만큼 출력하게 됩니다.

  •     count = int(input('출력할 횟수를 입력하세요 (종료하려면 0을 입력하세요): '))

  • 내부 while 반복문이 종료되면, 다시 사용자로부터 출력할 횟수를 입력받아 count 변수에 저장합니다.
  • 사용자가 0을 입력하면 외부 while 반복문이 종료됩니다.

  • 실행 과정

    1. 프로그램이 시작되면 사용자에게 이름을 입력하라는 메시지가 출력됩니다.
    2. 사용자가 이름을 입력하면, 출력할 횟수를 입력하라는 메시지가 출력됩니다.
    3. 사용자가 출력할 횟수를 입력하면, 그 횟수만큼 이름을 출력합니다.
    4. 이름을 출력한 후, 다시 출력할 횟수를 입력하라는 메시지가 출력됩니다.
    5. 사용자가 0을 입력하면 프로그램이 종료됩니다.

    예시 실행 과정

    입력 및 출력:

    이름을 입력하세요: John
    출력할 횟수를 입력하세요 (종료하려면 0을 입력하세요): 3
    John
    John
    John
    출력할 횟수를 입력하세요 (종료하려면 0을 입력하세요): 2
    John
    John
    출력할 횟수를 입력하세요 (종료하려면 0을 입력하세요): 0

    요약

    이 코드는 다음과 같은 작업을 수행합니다:

    1. 사용자로부터 이름과 출력할 횟수를 입력받습니다.
    2. 입력된 횟수만큼 이름을 출력합니다.
    3. 사용자가 0을 입력할 때까지 계속해서 출력할 횟수를 입력받고 이름을 출력합니다.

    이 코드는 while 문과 중첩 while 문을 사용하여 반복적인 작업을 수행하는 방법을 보여줍니다. while 문을 통해 사용자가 원하는 만큼 이름을 출력하고, 원하는 때에 프로그램을 종료할 수 있습니다.



    이전글)
    이전글 "Anaconda Prompt 3-1) 제어문 학습 ; 반복문 그리고 연습문제" 확인하러가기



    댓글 쓰기

    다음 이전