[250316일38H][자습] 하루종일 문제만 풀었다

윤승호·2025년 3월 16일

오늘은 계속 문제만 풀었다. 사이트에 있던 문제를 대부분 풀고 미션으로 넘어갔다. 아직 객체와 클래스 문제는 시작하지도 못했는데,,, 다음 주에 지옥이 펼쳐질 것 같다. 그래도 이틀 사이에 장족의 발전을 했다. 프리코스 때 1시간 걸렸던 문제를 3분 만에 풀었다. 다음 주의 성장이 기대된다.

list 타입의 변수와 for, in, range를 결합한 코드가 아직 익숙하지 않다.

학습시간 18:00~01:00(당일7H/누적38H)

학습내용

헷갈렸던 내용

1. 불린 개념 정리

print((12 >= 10 and not 3 > 4) or 3 ** 2 != 9)
== (True and not Flase) or False
== True or False
== True

그동안 True or False가 False인 줄 알았는데 True였다. 이제라도 알아서 다행이다.

불린 연산이 은근 헷갈린다. 아래 표로 외워야겠다.

True and True == True
True and False == False
False and True == False
False and False == False
True or True == True
True or False == True
False or True == True
False or False == False

2. print & return 사용처

def say_hello():
	message = “hello”
	return message

지금까지 이해한 바에 따르면, print는 함수에 저장해도 1회만 출력되고 None이 반환되어 “None”이 한 번 더 출력된다. return은 함수에 아예 저장한다. 대신 print(say_hello)를 입력해야 return한 값이 출력된다.

3. list타입 & for & in 연계

아래는 내가 만든 [거스름 돈 계산기] 코드인데, 만들면서도 너무 효율이 안 좋다는 생각을 했다.

def calculate_change(payment, cost):
    change = payment - cost    
    count50000 = change // 50000
    change = change % 50000
    print (f"50000원 지폐: {count50000}장")     
    count10000 = change // 10000
    change = change % 10000
    print (f"10000원 지폐: {count10000}장")      
    count5000 = change // 5000
    change = change % 5000
    print (f"5000원 지폐: {count5000}장")  
    count1000 = change // 1000
    change = change % 1000
print (f"1000원 지폐: {count1000}장")

GPT한테 물어보니 잔액을 list로 넣고 for문을 돌면 아래처럼 간단히 가능하다. 이걸 왜 이제 알았지 ㅠㅠ

def calculate_change(payment, cost):
    change = payment - cost
    bills = [50000, 10000, 5000, 1000]    
    for bill in bills:
        bill_count = change // bill ; change %= bill
        print(f"{bill}원 지폐: {bill_count}장")

4. try & except

문제를 풀다가 지금까지 배운 내용으로 도저히 풀 수가 없어서 GPT를 통해 while&try&break&except를 동시에 사용하는 방법을 학습했다. if&else랑 비슷한 느낌이었다. 관건은 while과 break의 사용처를 명확히 구분하는 것일 듯하다.

def add_numbers():
  while True:
    try:
      n1 = int(input("첫 번째 숫자를 입력하세요: "))
      break
    except:
      print("올바른 숫자를 입력하세요.")

  while True:
    try:
      n2 = int(input("두 번째 숫자를 입력하세요: "))
      break
    except:
      print("올바른 숫자를 입력하세요.")

  print(f"{n1} + {n2} = {n1 + n2}")

add_numbers()
profile
나는 AI 엔지니어가 된다.

0개의 댓글