Python 기초02

Doya·2025년 2월 5일

ESTSOFT_AI개발7기

목록 보기
3/43

개요

  • 2025년 02월 05일 진행한 python교육 내용 정리
  • 제어문(if)
  • 반복문(for)
  • Date라이브러리

제어문 if

제어문이란?

  • 프로그램의 실행 흐름을 제어하는 구문
  • 조건에 따라 코드 실행, 반복적으로 코드를 실행하는 등의 작업을 수행

if 사용법

  • 조건이 True(참)일때만 코드가 실행이 됨
  • if문의 구조

코드

1) 단일 조건식 
if 조건식:
	수행 코드
2) if ~ else
if 조건식:
	수행코드
else:
	수행코드
3) 다중 조건문
if 조건식:
	수행코드
elif 조건식:
	수행코드
else:
	수행코드 

if문 사용 예시

  • 학점 부여하기
  • 조건: 100~90이면 A, 89~80이면 B, 79~70이면 C,69~60이면 D, 60미만이면 F
#선언부
grade = 'F' #학점관리 변수 
kor, eng, total = 90, 85, 0
avg = 0
result = '결과출력'
total = kor + eng
avg = total / 2

#연산부 
# 같은 코드가 반복되지 않게 하기 
if avg >= 90:
  grade = 'A'
  result = '합격'
elif  avg >= 80:
  grade = 'B'
  result = '합격'
elif avg >= 70:
  grade = 'C'
  result = '합격'
elif avg >= 60:
  grade = 'D'
  result = '불합격'
else:
  grade = 'F'
  result = '불합격'

#출력부 
print(f'당신의 학점은 {grade}입니다')
print(f'시험결과는 {result}입니다')

반복문 For

  • 반복 작업을 수행함
  • 구조
1) 리스트 사용시 
for i in [1,2,3]:
	수행 코드 
2) range()함수 사용시 
for i in range(시작값, 멈춤값, 간격)

for문 사용 예시

for i in range(0, 10, 2):
  print(i, end = ' ')
print(' ')
for i in range(10): # 0부터 시작 0~9 까지
  print(i, end = ' ')
print(' ')

for i in range(1, 11): 
  print(i, end = ' ')
print(' ')

end

  • print()함수가 출력된 이후 추가할 문자를 지정
  • 기본값은 \n로 출력이 끝난 뒤 자동으로 줄바꿈이 이루어짐
  • 개행 대신 원하는 문자나 공백을 넣을 수 있음

datetime 모듈

모듈이란?

  • 함수나 변수, 클래스를 모아 놓은 파이썬 파일
  • 파이썬에 기본적으로 내장되어 있는 내장 모듈과, 다른 개발자들이 만든 외장 모듈이 있음
  • 직접 작성한 개인 모듈도 가능함

datatime

  • 파이썬 내장 모듈중 하나
  • 날짜와 시간을 다루기 위한 클래스, 함수를 제공
  • 별도의 설치 과정이 필요 없음

사용 예제

# a12_date.py
import datetime #년월일등 날짜
import time #시간

dt = datetime.datetime.now()
print(dt)
time.sleep(1) # 1sec 휴식 -> 지연시간 부여 

year = dt.year
month = dt.month
day = dt.day
hour = dt.hour
minute = dt.minute
second = dt.second
print(f'{year}년 {month}월 {day}일')
print(f'{hour}시 {minute}분 {second}초')
print('='*35)
print(dt.strftime('현재날짜 %Y-%m-%d')) # %m = 월 %M = 분
print(dt.strftime('현재시간 %H-%M-%S')) 

time.sleep

  • 일정 시간동안 프로세스를 일시정지할 수 있음

마무리 과제

문제 1: 나이 계산
문제 2: 성별 구별
선택옵션: jumin길이 체크, 성별 1/2, 3/4
조건: year은 2025년으로 고정(string), jumin도 고정

처음 방법

jumin = '971230-1835064'
year = '2025'
age = 1 
gender = '성별'
ju_year = 0
ju_gender = 0
year_1900 = False
year_2000 = False

# jumin에서 년도와 성별 숫자 추출 
ju_year = int(jumin[0:2])
ju_gender = int(jumin[7])

# 해당 주민번호의 대상이 1900년대 생인지 2000년대생인지 구별하기 위한 
if(ju_gender == 1 or ju_gender == 2):
  year_1900 = True
elif(ju_gender == 3 or ju_gender == 4):
  year_2000 = True
else:
  print("값이 이상합니다. 다시 확인 부탁드립니다")

# 나이계산 및 성별 계산  
if(year_1900 and ju_gender == 1):
  ju_year += 1900
  age += int(year) - ju_year
  gender = '남성'
elif(year_1900 and ju_gender == 2):
   ju_year += 1900
   age += int(year) - ju_year
   gender = '여성'
elif(year_2000 and ju_gender == 3):
   ju_year += 2000
   age += int(year) - ju_year
   gender = '남성'
elif(year_2000 and ju_gender == 4):
   ju_year += 2000
   age += int(year) - ju_year
   gender = '여성'


print(f'해당 주민번호 대상자의 나이는 {age}살이고, 성별은 {gender}입니다')
  • 코드가 너무 김
  • bool함수 없이 바로 계산 하는 것이 좀 더 효율적으로 보임

수정(최종)

jumin = '971230-1835064'
year = '2025'
age = 1 
gender = '성별'
ju_year = 0
ju_gender = 0

# 주민번호의 앞 부분 뒷 부분 길이 체크 
if(len(jumin) != 14 or len(jumin[0:6]) != 6 or len(jumin[7:]) != 7):
  print("잘못된 주민번호 형식 입니다.")

# jumin에서 년도와 성별 숫자 추출
# jumin은 str형이기 때문에 int형으로 형변환 
ju_year = int(jumin[0:2]) 
ju_gender = int(jumin[7])

#1900년대생인지 2000년대생인지 구별
if(ju_gender in [1,2]):
  ju_year += 1900
elif(ju_gender in [3,4]):
  ju_year += 2000
else:
  print("다시 확인해 주세요")

# 성별 구별 
if(ju_gender in [1,3]):
  gender = '남성'
else:
  gender = '여성'

#나이 계산 
age += int(year) - ju_year

#출력
print(f'해당 주민번호 대상자의 나이는 {age}살이고, 성별은 {gender}입니다')
profile
안녕하세요. 도야입니다

0개의 댓글