제로베이스 데이터 파트타임 스쿨 학습 일지 [25.03.27]

[강의 요약]

[Ch 02. 파이썬 기초 문제풀이] 강의 수강

59_반복문(01))부터 64_반복문(06)까지 강의 수강하였음

 

 

[반복문]

강의에서 배웠던 반복문

  • for문
  • while문

▶ 1부터 100까지 정수 중 십의 자리와 일의 자리에 대해 각각 홀/짝수를 구분하는 프로그램

for i in range(1, 101):
    if i <= 9:
        if i % 2 == 0:
            print('[{}]: 짝수!'.format(i))
        else:
            print('[{}]: 홀수!'.format(i))
    else:
        num10 = i // 10
        num1 = i % 10

        result10 = ''
        if num10 % 2 == 0:
            result10 = '짝수!!'
        else:
            result10 = '홀수!!'

        result1 = '0'
        if num1 != 0:
            if num1 % 2 == 0:
                result1 = '짝수!!'
            else:
                result1 = '홀수!!'

        print('[{}] 십의자리: {}, 일의자리: {}'.format(i, result10, result1))

 

●코드 실행 결과

★코드 설명★

  • 코드 흐름
    • 1부터 100까지 반복
    • 1~9는 홀수/짝수 판별
    • 10부터는 십의 자리와 일의 자리를 나눠서 각각 홀/짝 판단
  • 숫자가 1~9인 경우
    • 한 자리 숫자이므로 바로 나눠서 홀짝 판단
  • 숫자가 10 이상인 경우
    • 몫과 나머지를 이용
    • 2로 나눈 나머지가 0이면 짝수 아니면 홀수
      • 십의 자리, 일의 자리 동일

 

 

 

1부터 사용자가 입력한 정수까지의 합, 홀수의 합, 짝수의 합, 팩토리얼을 출력하는 프로그램

fNum = int(input('정수 입력: '))

addSum = 0
for i in range(1, (fNum+1)):
    addSum += i

addSumFormated = format(addSum, ',')
print('합 결과 : {}'.format(addSumFormated))



oddSum = 0
for i in range(1, (fNum+1)):
    if i % 2 != 0:
        oddSum += i

oddSumFormated = format(oddSum, ',')
print('홀수 합 결과 : {}'.format(oddSumFormated))



enenSum = 0
for i in range(1, (fNum+1)):
    if i % 2 == 0:
        enenSum += i

enenSumFormated = format(enenSum, ',')
print('짝수 합 결과 : {}'.format(enenSumFormated))



factorialResult = 1
for i in range(1, (fNum+1)):
    factorialResult *= i

factorialResultFormated = format(factorialResult, ',')
print('팩토리얼 결과 : {}'.format(factorialResultFormated))

●코드 실행 결과 

★코드 설명★

  • 코드 흐름 요약
    • 정수 입력받음
    • 1부터 fNum(입력받은 정수)까지 의 합 계산
    • 홀수만 더해서 홀수합 계산
    • 짝수만 더해서 짝수합 계산
    • 팩토리얼 계산
    • 각 결과 출력(세 자리 콤마 포맷팅 이용)
  • 총합 계산
    • range(1, fNum+1)로 1부터 입력값까지 반복
    • +=로 계속 더해서 누적
  • 홀수 합 계산
    • i % 2 != 0로 홀수 판별
  • 짝수 합 계산
    • i % 2 == 0로 짝수 판별
  • 팩토리얼 계산
    •  factorialResult *= i

 

내 생각에 코드를 더 깔끔하게 만들 수 있을 것 같아서 개선시켜 봤다.

import math

fNum = int(input('정수 입력: '))

total = 0
odd = 0
even = 0

for i in range(1, fNum + 1):
    total += i
    if i % 2 == 0:
        even += i
    else:
        odd += i

factorial = math.factorial(fNum)

print(f'합 결과 : {format(total, ",")}')
print(f'홀수 합 결과 : {format(odd, ",")}')
print(f'짝수 합 결과 : {format(even, ",")}')
print(f'팩토리얼 결과 : {format(factorial, ",")}')

★수정 사항★

  • 중복된 for문 4번 → 한 번에 통합
  • 변수이름 가독성 개선
  • 팩토리얼은 math 모듈 사용
    • math.factorial(fNum)

 

 

 

 

 

 

 

 

[나의 생각 정리]

  • 연습문제 코드를 통해서 이론으로 배운 반복문 부분을 복습할 수 있었다.

 

[적용점]

  • 반복문은 어떤 코드를 작성하던지 간에 자주 사용된다.

 

 

 

“이 글은 제로베이스 데이터 스쿨 주 3일반 강의 자료 일부를 발췌하여 작성되었습니다.”