250929 TIL

2025. 9. 29. 16:40Courses/아이티윌 오라클 DBA 과정

복습 Quiz

#문제1) 임의의 정수가 짝수(2의 배수)인지 확인하시오
def isEven(num) :
    print('isEven(%d) : %s' % (num, num % 2 == 0))

isEven(2)   # True
isEven(1)   # False

#문제2) 임의의 정수가 3의 배수인지 확인하시오
def isMultipleOf3(num) :
    print('isMultipleOf3(%d) : %s' % (num, num % 3 == 0))

isMultipleOf3(6)    # True
isMultipleOf3(7)    # False

#문제3) 해당 년도가 윤년인지 확인하시오
def isLeapYear(year):
    print('isLeapYear(%d) : %s' % (year, (year % 4 == 0 and year % 100 != 0) or year % 400 == 0))

isLeapYear(2025)    # False
isLeapYear(2024)    # True

#문제4) 지폐의 갯수를 구하시오
"""
      만원 5장
      천원 4장
      백원 3장
      십원 2장 
"""

def countMoney(money):
    won_10000 = money // 10000
    print("만원 %d장" % won_10000)

    money %= 10000
    won_1000 = money // 1000
    print("천원 {}장".format(won_1000))

    money %= 1000
    won_100 = money // 100
    print("백원 {0}장".format(won_100))

    money %= 100
    won_10 = money // 10
    print("십원 {num}장".format(num=won_10))  

countMoney(54320)

#문제5) 임의의 정수가 2의 배수이면서 5의 배수인지 확인하시오
def isMultipleOf2And5(num) :
    print('isMultipleOf2And5(%d) : %s' % (num, num % 2 == 0 and num % 5 == 0))

isMultipleOf2And5(10)   # True
isMultipleOf2And5(6)    # False

#문제6) 임의의 정수가 1이거나 3인지 확인하시오.
def is1Or3(num) :
    print('is1Or3(%d) : %s' % (num, num == 1 or num == 3))

is1Or3(1)   # True
is1Or3(3)   # True
is1Or3(2)   # False

#문제7) 국어 점수가 80 ~ 89점 사이인지 확인하시오.
def isKorbetween80and89(kor) :
    print('isKorbetween80and89(%d) : %s' % (kor, 80 <= kor and kor <= 89))

isKorbetween80and89(85) # True
isKorbetween80and89(50) # False

자료형

# Data Type(자료형) 조회
print(type(123))        # <class 'int'> 정수형
print(type(4.5))        # <class 'float'> 실수형
print(type('Hello'))    # <class 'str'> 문자형
print(type(True))       # <class 'bool'> 논리형

print(type([1, 3, 5]))         # <class 'list'> 리스트
print(type((2, 4, 6)))         # <class 'tuple'> 튜플
print(type({"name":"ITWILL"})) # <class 'dict'> 딕셔너리
############################################################

# Datatype Conversion 형 변환
# -> 형식: 자료형(값)
x = 3
y = 4.5
z = float(x)
w = int(y)

print(x, type(x))
print(y, type(y))
print(z, type(z))
print(w, type(w))
############################################################

# == 과 is 연산의 차이
i = 100    # 정수형
j = 100.0  # 실수형

# 단순히 값만 비교하므로 두 값이 같다고 판단
print(i == j)   # True

# 값의 종류(데이터타입)까지 비교하므로
# -> 정수와 실수는 다르다고 판단
print(i is j)   # False

조건문

# 제어문 : 프로그램의 흐름을 제어
# -> 조건문과 반복문
"""
    - 파이썬의 코딩블럭
      코딩블럭을 표시하기 위해 들여쓰기(Identation)을 사용
      일반적으로 들여쓰기에는 4개의 공백을 사용할 것을 권장
      동일한 블럭의 들여쓰기는 모두 동일한 수의 공백을 사용해야 함
      주의할 점은 공백과 탭을 혼용해서 사용하지 말아야 함
"""
"""
    - if 조건문의 형식

      if 조건: 조건이 True일때 처리명령어

      if 조건:
                조건이 True일때 처리명령어
      else:
                조건이 False일때 처리명령어

      if 조건1:
                     조건1이 True일때 처리명령어
      elif 조건2:
                     조건2가 True일때 처리명령어
      elif 조건3:
                     조건3이 True일때 처리명령어
      else:
                     조건이 False일때 처리명령어
"""

#문제1) 절대값을 구하시오 (무조건 양수)
abs = -3

if abs > 0:
    print(f"{abs} -> {abs}")
else :
    print(f"{abs} -> {-abs}")

#문제2) 임의의 값이 양수, 음수, 제로를 출력하시오
num = 0

if num > 0:
    print(f"{num} : 양수")
elif num == 0:
    print(f"{num} : 제로")
elif num < 0:
    print(f"{num} : 음수")

#문제3) 세개의 수중에서 최대값을 출력하시오
a = -2
b = -8
c = -9

max = 0

if a > b:
    max = a
    if max < c:
        max = c
else:
    max = b
    if max < c:
        max = c
print(f"max : {max}")

#문제4) 성별코드에 따라 나이와 성별을 출력하시오
myYear = 10
myCode = 4

if myCode < 3:
    age = 2025 - (1900 + myYear)
    if myCode % 2 == 0:
        print(f"age : {age}, gender : female")
    else:
        print(f"age : {age}, gender : male")
else:
    age = 2025 - (2000 + myYear)
    if myCode % 2 == 0:
        print(f"age : {age}, gender : female")
    else:
        print(f"age : {age}, gender : male")

Math 모듈

# math 함수 : 수학 관련
# 모듈 : 파이썬 코드를 논리적으로 묶어서 관리하고 사용할 수 있도록 하는 것
# 패키지 : 모듈들을 모은 컬렉션

## 1) import 하지 않고 사용할 수 있는 내장 함수
x = min(1, 2, 3, 4, 5)  # 최소값
y = max(1, 2, 3, 4, 5)  # 최대값
print(x)    # 1
print(y)    # 5

x = abs(3)  # 절대값
y = abs(-3)
print(x)    # 3
print(y)    # 3

x = pow(2, 4)   # 2의 4승
print(x)    # 16

# round는 소수점을 반올림한 값을 리턴
print(round(123.456, 2))    # 123.46
print(round(123.453, 2))    # 123.45

## 2) math 모듈
import math # 모듈 선언

print(math.pi)  # 3.141592653589793

# 소수점 올림
x = math.ceil(2.2)  # 3
y = math.ceil(3.5)  # 4
print(x)
print(y)

# 소수점 버림
x = math.floor(2.2) # 2
y = math.floor(3.5) # 3
print(x)
print(y)

from math import ceil, floor

# math 모듈명 생략 가능
print(ceil(2.1))
print(floor(2.1))

조건문 Quiz

# 성적 프로그램
name = "손흥민"
kor = 100
eng = 100
mat = 35
avg = (kor + eng + mat) // 3

print(f"이름: {name}")
print(f"국어: {kor}")
print(f"영어: {eng}")
print(f"수학: {mat}")
print(f"평균: {avg}")

#문제1) 평균이 95점 이상이면 장학생 출력
if avg >= 95:
    print("장학생")

#문제2) 국어점수가 70점 이상이면 국어:합격 아니면 국어:불합격
if kor >= 70:
    print("국어: 합격")
else:
    print("국어: 불합격")

#문제3) 수학점수 90점 이상이면 수학:A학점
#              80점 이상이면 수학:B학점
#              70점 이상이면 수학:C학점
#              60점 이상이면 수학:D학점
#              아니면 수학:F학점
if mat >= 90:
    print("수학: A학점")
elif mat >= 80:
    print("수학: B학점")
elif mat >= 70:
    print("수학: C학점")
elif mat >= 60:
    print("수학: D학점")
else:
    print("수학: F학점")

#문제4) 과락
#       평균이 70점이상이면 결과:합격
#       (단, 국영수 세과목 중에서 한과목이라도 40점미만이면 결과:재시험)
#       평균이 70점미만이면 결과:불합격
if avg >= 70:
    if kor >= 40 and eng >= 40 and mat >= 40:
        print("결과: 합격")
    else:
        print("결과: 재시험")
else:
    print("결과: 불합격")

"""
    결과
    이름: 손흥민
    국어: 100
    영어: 100
    수학: 35
    평균: 78
    국어: 합격
    수학: F학점
    결과: 재시험
"""

반복문

For문

# 반복문 : forans, while문
# break문, continue문
# 무한 Loop => 끝이 없는 반복

"""
    for 변수 in range(시작값, 종료값-1, 증감) : 
        반복할 처리식
"""

# a는 0 ~ 4까지 5번 반복
for a in range(5):
    print(a)
    print("Python")

# b는 1 ~ 4까지 4번 반복
for b in range(1, 5):
    print(b)
    print("ITWILL")

# c는 1부터 4까지 2씩 증가
for c in range(1, 5, 2):
    print(c)
    print("KOREA")

# 4단 
dan = 4
for i in range(1, 10):
    print(f"{dan} * {i} = {dan * i}")

While문

# 반복문
"""
       while 조건:
            조건이 True이면 처리
            조건이 True이면 처리
            조건이 True이면 처리
"""

# 증가에 따른 반복
i = 1
while i <= 3:
    print("Python")
    i = i + 1

# 감소에 따른 반복
j = 3
while j >= 1:
    print("ITWILL")
    j = j - 1

# 4단 
dan = 4
i = 1
while i <= 9:
    print(f"{dan} * {i} = {dan*i}")
    i = i + 1

Break문

# break 문
# -> 반복문 안에서 루프를 빠져나오기 위해

a = 1
while a < 10:
    if a == 5: break
    print(a)
    a = a + 1

"""
    1
    2
    3
"""

Continue문

# continue 문
# -> 루프 블럭의 나머지 문장들을 실행하지 않고
# -> 다음 루프로 직접 돌아가게 할 수 있다
b = 1
while b < 10:
    b = b + 1
    if b == 5: continue
    print(b)

"""
    2
    3
    4
    6
    7
    8
    9
    10
"""

이중 반복문

# 이중 반복문
for a in range(3):
    print("KOREA")
    for b in range(2):
        print("SEOUL")
"""
    KOREA
    SEOUL
    SEOUL
    KOREA
    SEOUL
    SEOUL
    KOREA
    SEOUL
    SEOUL
"""

a = 1
while a <= 2:
    print("Python")
    a = a + 1
    b = 1
    while b <= 3:
        print("JAVA")
        b = b + 1
"""
    Python
    JAVA
    JAVA
    JAVA
    Python
    JAVA
    JAVA
    JAVA
"""

# 2단 ~ 9단 출력하시오
for dan in range(2, 10):
    print(f"==== {dan}단 ====")
    for i in range(1, 10):
        print(f"{dan} * {i} = {dan * i}")

"""
==== 2단 ====
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18

```

==== 9단 ====
9 * 1 = 9
9 * 2 = 18
9 * 3 = 27
9 * 4 = 36
9 * 5 = 45
9 * 6 = 54
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81
"""

반복문 Quiz

# 문제1) 1 ~ 3 사이의 합을 구하시오
sum = 0
for i in range(1, 4):
    sum += i
print(sum)  # 6

# 문제2) 4팩토리얼 값을 구하시오(누적의 곱)
fac = 1
for i in range(1, 5):
    fac *= i
print(fac)  # 24

# 문자3) 두 수 사이의 수를 전부 더하시오
a = 10
b = 1
sum = 0

# 만일, 앞의 수가 뒤의 수보다 크면 두 변수의 값을 서로 교환(swap)
"""
    if a > b:
        tmp = a
        a = b
        b = tmp
"""
if a > b:
    a, b = b, a

for i in range(a, b + 1):
    sum += i
print(sum)  # 55

 

'Courses > 아이티윌 오라클 DBA 과정' 카테고리의 다른 글

251010 TIL  (0) 2025.10.10
251002 TIL  (0) 2025.10.02
251001 TIL  (0) 2025.10.01
250930 TIL  (0) 2025.09.30
250926 TIL  (0) 2025.09.26