[강의 요약]
[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일반 강의 자료 일부를 발췌하여 작성되었습니다.”
'제로베이스 데이터 취업 파트타임 > 100일 챌린지_일일 학습 일지' 카테고리의 다른 글
제로베이스 데이터 파트타임 스쿨 학습 일지 [25.03.29] (0) | 2025.03.29 |
---|---|
제로베이스 데이터 파트타임 스쿨 학습 일지 [25.03.28] (0) | 2025.03.28 |
제로베이스 데이터 파트타임 스쿨 학습 일지 [25.03.26] (0) | 2025.03.27 |
제로베이스 데이터 파트타임 스쿨 학습 일지 [25.03.25] (0) | 2025.03.25 |
제로베이스 데이터 파트타임 스쿨 학습 일지 [25.03.24] (0) | 2025.03.24 |