콘텐츠 내 자동삽입광고

광고1

posted by 초코생크림빵 2025. 9. 7. 13:43
반응형

print('정수를 입력, 0 입력 시 종료됨')

total=0

s = int(input('num : '))

while s != 0:
    total = total + s
    s = int(input('num : '))

print(f'총 합계 : {total}')

결과)
정수를 입력, 0 입력 시 종료됨
num : 80
num : 70
num : 60
num : 90
num : 100
num : 0
총 합계 : 400

파이썬 소스 및 결과입니다. 소스 설명)

 

코드 분석

이 파이썬 코드는 사용자로부터 여러 개의 정수를 입력받아 그 합계를 계산하는 프로그램입니다. 사용자가 0을 입력하면 더 이상 숫자를 입력받지 않고, 지금까지 입력된 모든 숫자의 합계를 출력합니다.

코드를 한 줄씩 살펴보겠습니다.

  1. print('정수를 입력, 0 입력 시 종료됨')
    • 프로그램을 시작하며 사용자에게 어떤 동작을 하는지 안내하는 메시지를 화면에 출력합니다.
  2. total=0
    • 입력받은 숫자들의 합계를 저장할 변수 total을 선언하고 초기값으로 0을 할당합니다.
  3. s = int(input('num : '))
    • input() 함수를 사용하여 사용자에게 'num : ' 메시지를 보여주고 입력을 받습니다.
    • 입력받은 값은 문자열 형태이므로, int() 함수를 사용하여 정수로 변환한 뒤 변수 s에 저장합니다. 이것이 합계 계산의 첫 번째 숫자가 됩니다.
  4. while s != 0:
    • **while**은 반복문으로, 괄호 안의 조건(s != 0)이 **참(True)**인 동안 아래의 코드 블록을 계속해서 실행합니다.
    • 즉, s의 값이 0이 아닌 한 루프는 계속됩니다.
  5. total = total + s
    • 이전까지의 합계(total)에 현재 s에 저장된 숫자를 더한 후, 그 결과를 다시 total 변수에 저장합니다. 이렇게 total은 숫자가 입력될 때마다 누적됩니다.
  6. s = int(input('num : '))
    • 합계 계산 후, 사용자에게 다음 숫자를 입력받습니다. 이 값은 다시 s에 저장되며, while 루프는 새로운 s 값을 가지고 다시 조건(s != 0)을 확인합니다.
    • 만약 사용자가 0을 입력하면, 조건이 **거짓(False)**이 되어 반복문은 종료됩니다.
  7. print(f'총 합계 : {total}')
    • 반복문이 종료된 후, 최종적으로 계산된 total 값을 화면에 출력합니다. f-string을 사용하여 문자열 내에 변수 값을 포함시킵니다.

결과 설명

제공된 결과는 위 코드의 실행 흐름을 정확하게 보여줍니다.

  • num : 80: s에 80이 저장되고, total은 0 + 80 = 80이 됩니다.
  • num : 70: s에 70이 저장되고, total은 80 + 70 = 150이 됩니다.
  • num : 60: s에 60이 저장되고, total은 150 + 60 = 210이 됩니다.
  • num : 90: s에 90이 저장되고, total은 210 + 90 = 300이 됩니다.
  • num : 100: s에 100이 저장되고, total은 300 + 100 = 400이 됩니다.
  • num : 0: s에 0이 저장됩니다. while 조건(s != 0)이 거짓이 되므로 반복문이 종료됩니다.
  • 총 합계 : 400: 반복문 종료 후, 최종적으로 누적된 total 값인 400이 출력됩니다.

이 프로그램은 while 반복문을 사용하여 종료 조건(0 입력)이 될 때까지 유연하게 값을 입력받고 처리하는 구조를 보여주는 좋은 예시입니다.

반응형

콘텐츠 내 자동삽입광고
posted by 초코생크림빵 2025. 8. 30. 18:22
반응형

a=1
num=int(input('단 입력: '))
while a <= 9:
    print(f'{num} x {a} = {num*a}')
    a += 1
    
결과)
단 입력: 7
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
7 x 6 = 42
7 x 7 = 49
7 x 8 = 56
7 x 9 = 63

파이썬 소스 및 결과입니다. 소스 설명)

 

제시된 파이썬 코드는 사용자가 입력한 단에 대한 구구단을 출력하는 프로그램입니다. 앞서 보셨던 for 반복문 대신 while 반복문을 사용해 동일한 결과를 만들어냅니다.


코드 분석

1. 변수 초기화 및 사용자 입력

Python
 
a=1
num=int(input('단 입력: '))
  • a=1 : a는 변수로, 구구단에서 곱해지는 수(1부터 9까지)를 나타냅니다. while 반복문이 시작되기 전에 1로 초기화됩니다. 이 변수가 9를 넘어서는 순간 반복문이 종료됩니다.
  • num=int(input('단 입력: ')) : 이 부분은 앞선 예제와 동일합니다. input() 함수가 사용자로부터 문자열을 입력받고, int() 함수가 이 문자열을 정수로 변환하여 num 변수에 저장합니다. 예를 들어, 사용자가 7을 입력하면 num에 정수 7이 할당됩니다.

2. while 반복문

Python
 
while a <= 9:
    print(f'{num} x {a} = {num*a}')
    a += 1
  • while a <= 9: : 이 줄은 while 반복문의 시작을 알립니다. while 반복문은 괄호 안의 조건(a <= 9)이 **참(True)**인 동안 계속해서 블록 내부의 코드를 반복 실행합니다. a가 처음에는 1이기 때문에, 조건 1 <= 9는 참이 되고 반복이 시작됩니다.
  • print(f'{num} x {a} = {num*a}') : 이 줄은 앞선 예제와 동일합니다. f-string을 사용해 num과 a 변수의 현재 값을 활용하여 구구단 계산 결과와 함께 화면에 출력합니다.
  • a += 1 : 이 줄은 반복문의 핵심입니다. a = a + 1과 같은 의미로, a의 값을 1씩 증가시킵니다. 이 과정이 없으면 a의 값이 계속 1에 머물러 while 문의 조건(a <= 9)이 항상 참이 되어 무한 루프에 빠지게 됩니다. a가 10이 되는 순간, while 조건(10 <= 9)은 거짓(False)이 되고 반복문이 종료됩니다.

결과 분석

사용자가 단 입력: 프롬프트에 7을 입력하면, num 변수에 정수 7이 저장됩니다. while 반복문은 a가 1부터 시작하여 9가 될 때까지 총 9번의 출력을 반복합니다.

반복 횟수 a의 값 num의 값 num * a 출력 내용
1 1 7 7 7 x 1 = 7
2 2 7 14 7 x 2 = 14
... ... ... ... ...
9 9 7 63 7 x 9 = 63
while 반복문은 특정 횟수만큼 반복하는 for 반복문과 달리, 조건이 만족되는 동안 반복을 계속하기 때문에, 반복 횟수를 미리 알기 어려운 상황에서 더 유용하게 사용됩니다. 이 코드에서는 a += 1을 통해 a의 값을 수동으로 증가시켜 for 반복문과 동일한 횟수만큼 실행되도록 제어했습니다.
반응형

콘텐츠 내 자동삽입광고
posted by 초코생크림빵 2025. 8. 29. 20:29
반응형

파이썬 소스)

result = None
while result != 'y':
    print('파이썬 최고!')
    result = input('계속하려면 입력: (종료:y) ')

print('종료')

결과값)
파이썬 최고!
계속하려면 입력: (종료:y) king
파이썬 최고!
계속하려면 입력: (종료:y) Home
파이썬 최고!
계속하려면 입력: (종료:y) y
종료

파이썬 소스 및 결과값입니다. 소스설명)

이 파이썬 코드는 사용자가 'y'를 입력할 때까지 "파이썬 최고!"라는 문구를 계속해서 출력하는 프로그램입니다. while 루프를 사용하여 조건이 충족될 때까지 특정 동작을 반복하는 원리로 작동합니다.


소스코드 설명

  • result = None: 이 줄은 result라는 변수를 만들고, 초기값으로 None을 할당합니다. None은 아무 값도 없음을 의미하는 파이썬의 특별한 값입니다. while 루프가 시작되기 전에 result 변수가 존재하도록 미리 선언하여, 첫 번째 조건 검사를 가능하게 합니다.
  • while result != 'y':: 이 부분은 while 문의 핵심 조건식입니다. 이 조건이 참(True)인 동안, while 루프 내의 코드가 계속 반복됩니다. 여기서의 조건은 result 변수의 값이 'y'와 같지 않을 때입니다.
    • 초기값인 None은 'y'와 같지 않으므로, 첫 번째 반복문이 실행됩니다.
    • 사용자가 'y'가 아닌 다른 값을 입력하면, result 변수에 그 값이 저장되고, 조건식은 계속 참이므로 반복이 이어집니다.
    • 사용자가 'y'를 입력하면, result의 값이 'y'가 되고, 조건식은 거짓(False)이 되어 반복문이 종료됩니다.
  • print('파이썬 최고!'): 이 줄은 while 루프의 내부에 포함된 첫 번째 실행문입니다. 루프가 반복될 때마다 화면에 "파이썬 최고!"라는 문구가 출력됩니다.
  • result = input('계속하려면 입력: (종료:y) '): 이 줄은 사용자로부터 입력을 받는 역할을 합니다.
    • input() 함수는 괄호 안의 문자열('계속하려면 입력: (종료:y) ')을 화면에 보여주고, 사용자가 키보드로 입력한 값을 반환합니다.
    • 사용자가 입력한 값은 다시 result 변수에 할당됩니다. 이 새로운 값이 다음 while 루프의 조건 검사에 사용됩니다.
  • print('종료'): 이 줄은 while 루프가 완전히 끝난 후에 실행됩니다. 즉, 사용자가 'y'를 입력하여 반복문이 종료되면, 화면에 "종료"라는 문구가 출력되고 프로그램이 마무리됩니다.

프로그램 실행 과정

  1. 시작: result 변수는 None입니다. None은 'y'와 같지 않으므로, while 루프가 시작됩니다.
  2. 첫 번째 반복: "파이썬 최고!"가 출력되고, 사용자에게 입력을 기다립니다. 사용자가 'king'을 입력하면, result는 'king'이 됩니다.
  3. 두 번째 반복: result의 값('king')이 'y'와 같지 않으므로, 루프가 다시 실행됩니다. "파이썬 최고!"가 출력되고, 사용자에게 입력을 기다립니다. 사용자가 'Home'을 입력하면, result는 'Home'이 됩니다.
  4. 세 번째 반복: result의 값('Home')이 'y'와 같지 않으므로, 루프가 다시 실행됩니다. "파이썬 최고!"가 출력되고, 사용자에게 입력을 기다립니다. 사용자가 'y'를 입력하면, result는 'y'가 됩니다.
  5. 루프 종료: result의 값('y')이 'y'와 같아졌으므로, while 루프의 조건(result != 'y')이 거짓이 되어 반복문이 끝납니다.
  6. 마무리: while 루프 바깥에 있는 print('종료')가 실행되고, 프로그램이 종료됩니다.
반응형

콘텐츠 내 자동삽입광고
posted by 초코생크림빵 2025. 8. 29. 20:00
반응형

결론을 먼저 언급한다면,

핵심 차이: 들여쓰기(Indentation)

파이썬에서 들여쓰기(Indentation)는 코드의 소속을 결정하는 매우 중요한 문법 규칙입니다. while 문 아래에 들여쓰기된 코드 블록은 모두 반복문에 속하게 됩니다.

  • 첫 번째 소스: print('풍월을 읊습니다') 구문에 들여쓰기가 없으므로 반복문과 상관없이 실행됩니다.
  • 두 번째 소스: print('풍월을 읊습니다') 구문에 들여쓰기가 있으므로 반복문에 포함되어 반복 실행됩니다.

설명시작)

첫번째 소스

 

year=1

while year <=3:

    print(f'서당개 {year}년')

    year += 1

print('풍월을 읊습니다')

 

결과값)

서당개 1년
서당개 2년
서당개 3년
풍월을 읊습니다

파이썬 소스입니다. 소스 설명)

 

주어진 파이썬 코드는 'while' 반복문을 사용하여 특정 조건이 만족될 때까지 코드 블록을 반복 실행하는 예제입니다. 이 코드는 '서당개 3년이면 풍월을 읊는다'라는 한국 속담을 출력하는 간단한 로직을 구현하고 있습니다.


코드 분석

  • year = 1
    • year라는 변수를 선언하고 초기값으로 1을 할당합니다. 이 변수는 반복문의 횟수를 세는 카운터 역할을 합니다.
  • while year <= 3:
    • while 반복문의 시작을 알립니다. year 변수의 값이 3보다 작거나 같을 때까지 반복문을 계속 실행하라는 의미입니다. 조건이 참(True)인 동안 코드 블록이 반복됩니다.
    • 1년 차: year가 1이므로 조건 (1 <= 3)이 참입니다.
    • 2년 차: year가 2이므로 조건 (2 <= 3)이 참입니다.
    • 3년 차: year가 3이므로 조건 (3 <= 3)이 참입니다.
    • 4년 차: year가 4가 되면 조건 (4 <= 3)이 거짓(False)이 되어 반복문이 종료됩니다.
  • print(f'서당개 {year}년')
    • while 반복문 안에 있는 코드 블록입니다. 조건이 참일 때마다 이 줄이 실행됩니다.
    • f-string (Formatted String Literal)을 사용하여 변수 year의 값을 문자열에 삽입합니다.
    • year의 값에 따라 각각 '서당개 1년', '서당개 2년', '서당개 3년'이 출력됩니다.
  • year += 1
    • 이 부분은 year = year + 1과 같은 의미로, 반복문이 한 번 실행될 때마다 year 변수의 값을 1씩 증가시킵니다. 이 줄이 없다면 year의 값은 계속 1로 유지되어 무한 루프에 빠지게 됩니다.
  • print('풍월을 읊습니다')
    • while 반복문이 모두 끝난 후에 실행되는 코드입니다.
    • 반복문이 종료되는 시점, 즉 year의 값이 4가 된 후에 이 문장이 출력됩니다.

실행 결과

코드를 실행하면 다음과 같은 순서로 결과가 출력됩니다.

  1. year는 1이 됩니다.
  2. while 조건 (1 <= 3)이 참이므로 print('서당개 1년')이 실행됩니다.
  3. year가 2가 됩니다.
  4. while 조건 (2 <= 3)이 참이므로 print('서당개 2년')이 실행됩니다.
  5. year가 3이 됩니다.
  6. while 조건 (3 <= 3)이 참이므로 print('서당개 3년')이 실행됩니다.
  7. year가 4가 됩니다.
  8. while 조건 (4 <= 3)이 거짓이므로 반복문이 종료됩니다.
  9. 마지막으로 반복문 밖의 print('풍월을 읊습니다')가 실행됩니다.

따라서 최종 출력 결과는 다음과 같습니다.

서당개 1년
서당개 2년
서당개 3년
풍월을 읊습니다

 

 

두번째 소스

year=1

while year <=3:

    print(f'서당개 {year}년')

    year = year + 1

    print('풍월을 읊습니다')

 

결과)

서당개 1년

풍월을 읊습니다

서당개 2년

풍월을 읊습니다

서당개 3년

풍월을 읊습니다

 

파이썬 소스 및 결과값입니다. 소스 설명

주어진 파이썬 코드는 'while' 반복문을 사용하여 특정 조건이 만족될 때까지 코드 블록을 반복 실행하는 예제입니다. 이 코드는 '서당개 3년이면 풍월을 읊는다'라는 한국 속담을 출력하는 간단한 로직을 구현하고 있습니다.


코드 분석

  • year = 1
    • year라는 변수를 선언하고 초기값으로 1을 할당합니다. 이 변수는 반복문의 횟수를 세는 카운터 역할을 합니다.
  • while year <= 3:
    • while 반복문의 시작을 알립니다. year 변수의 값이 3보다 작거나 같을 때까지 반복문을 계속 실행하라는 의미입니다. 조건이 참(True)인 동안 코드 블록이 반복됩니다.
  • print(f'서당개 {year}년')
    • while 반복문 안에 있는 코드 블록입니다. 조건이 참일 때마다 이 줄이 실행됩니다.
    • f-string (Formatted String Literal)을 사용하여 변수 year의 값을 문자열에 삽입합니다.
    • year의 값에 따라 각각 '서당개 1년', '서당개 2년', '서당개 3년'이 출력됩니다.
  • year = year + 1
    • 반복문이 한 번 실행될 때마다 year 변수의 값을 1씩 증가시킵니다. 이 줄이 없다면 year의 값은 계속 1로 유지되어 무한 루프에 빠지게 됩니다.
  • print('풍월을 읊습니다')
    • 이 부분은 while 반복문 안에 포함되어 있어 print(f'서당개 {year}년')과 함께 반복적으로 실행됩니다.

실행 과정 및 결과

이 코드는 반복문 안에 있는 두 개의 print 문이 함께 반복 실행됩니다.

  1. year가 1일 때:
    • print('서당개 1년')이 실행됩니다.
    • year가 2가 됩니다.
    • print('풍월을 읊습니다')가 실행됩니다.
  2. year가 2일 때:
    • print('서당개 2년')이 실행됩니다.
    • year가 3이 됩니다.
    • print('풍월을 읊습니다')가 실행됩니다.
  3. year가 3일 때:
    • print('서당개 3년')이 실행됩니다.
    • year가 4가 됩니다.
    • print('풍월을 읊습니다')가 실행됩니다.

year가 4가 되면 while 조건 (4 <= 3)이 거짓(False)이 되어 반복문이 종료됩니다.

이러한 실행 흐름 때문에 최종 출력 결과는 다음과 같습니다.

서당개 1년
풍월을 읊습니다
서당개 2년
풍월을 읊습니다
서당개 3년
풍월을 읊습니다

 

들여쓰기의 중요 포인트!!!!

print('풍월을 읊습니다') 위치로 인해 결과값이 다르게 나옵니다.

 

네, 맞습니다. print('풍월을 읊습니다') 구문의 위치가 달라졌기 때문에 출력 결과가 달라진 것입니다.


첫 번째 소스코드의 실행 원리

Python
 
year=1
while year <=3:
    print(f'서당개 {year}년')
    year += 1
print('풍월을 읊습니다')

이 코드에서 print('풍월을 읊습니다')는 while 반복문 밖에 있습니다. 따라서 year가 1, 2, 3일 때 반복문이 모두 실행되고 나서, 즉 반복문이 종료된 후에 이 구문이 한 번만 실행됩니다.

  • while 반복문 실행: '서당개 1년' → '서당개 2년' → '서당개 3년'
  • while 반복문 종료 후: '풍월을 읊습니다'

그래서 최종 결과는 '서당개 3년'까지 출력된 후 '풍월을 읊습니다'가 한 번 나오는 것입니다.


두 번째 소스코드의 실행 원리

Python
 
year=1
while year <=3:
    print(f'서당개 {year}년')
    year = year + 1
    print('풍월을 읊습니다')

이 코드에서 print('풍월을 읊습니다')는 print(f'서당개 {year}년')와 함께 while 반복문 안에 있습니다. 즉, 반복문이 한 번 실행될 때마다 두 구문이 모두 실행됩니다.

  • year가 1일 때: '서당개 1년'과 '풍월을 읊습니다'가 함께 출력
  • year가 2일 때: '서당개 2년'과 '풍월을 읊습니다'가 함께 출력
  • year가 3일 때: '서당개 3년'과 '풍월을 읊습니다'가 함께 출력

따라서 최종 결과는 '서당개 X년'과 '풍월을 읊습니다'가 번갈아가며 세 번 나오는 것입니다.


핵심 차이: 들여쓰기(Indentation)

파이썬에서 들여쓰기(Indentation)는 코드의 소속을 결정하는 매우 중요한 문법 규칙입니다. while 문 아래에 들여쓰기된 코드 블록은 모두 반복문에 속하게 됩니다.

  • 첫 번째 소스: print('풍월을 읊습니다') 구문에 들여쓰기가 없으므로 반복문과 상관없이 실행됩니다.
  • 두 번째 소스: print('풍월을 읊습니다') 구문에 들여쓰기가 있으므로 반복문에 포함되어 반복 실행됩니다.

이처럼 들여쓰기 하나로 인해 코드의 동작 방식과 결과가 완전히 달라지게 됩니다.

반응형

콘텐츠 내 자동삽입광고