내일배움캠프

[내일배움캠프] TIL 22일차 26.01.22(목)

nom_de_plume 2026. 1. 22. 21:07

못 푼 문제 해결

 

 

문제 3-5) 예외 처리 적용하기

  • 문제 설명: 형식이 잘못된 입력이 들어오면 "형식이 잘못되었습니다"라고 출력하세요.
  • 관련 이론: try-except 구문은 오류 발생 시 프로그램 종료 대신 개발자가 지정한 메시지를 보여줍니다.

답안)

### 문제 3-5) 예외 처리 적용하기

try:
    a, b = map(int, input().split())
    print(a + b)
except:
    print("형식이 잘못되었습니다")
상황 실행 순서 결과정상
입력 (1 2) try 실행 -> 합계 출력 3
잘못된 입력 (abc) try 도중 에러 -> except로 이동 형식이 잘못되었습니다

 

문제 4-6) ValueError 처리 (합계)

  • 문제 설명: 숫자가 아닌 값이 포함되면 "정수만 입력하세요"라고 출력하세요.

답안)

try:
    nums = map(int, input().split())
    print(sum(nums))
except ValueError:
    print("정수만 입력하세요")
입력 예시 sum(nums) 결과 비고
10 20 30 두 수의 합 계산
5 5 5 5 20 여러 개의 숫자도 처리 가능 (장점!)
10 hello (에러 발생) ValueError 발생 $\rightarrow$ "정수만 입력하세요" 출력
(공백만 입력) 0 빈 리스트의 합은 0이므로 에러 없이 0 출력

 

 

문제 4-7) 입력 개수 검증

  • 문제 설명: 반드시 정수 2개만 입력받아야 하며, 개수가 다르면 경고 문구를 출력하세요.

답안)

data = input().split()
if len(data) == 2:
    print(int(data[0]) + int(data[1]))
else:
    print("정수 2개를 입력하세요")

 

문제 1-8) 예약어 사용 불가

  • 문제 설명: for = 10 코드를 실행하면 에러가 나는 이유를 설명하세요.

답안)

for는 파이썬에서 반복문을 위해 미리 정해놓은 '예약어(Keyword)'이다.

예약어는 변수명으로 쓸 수 없지만, for_list 처럼 다른 글자와 조합하면 사용 가능하다.

 

문제 2) 문자열 분리 후 다시 합치기

  • 문제 설명: "A,B,C"를 쉼표로 나누고 하이픈()으로 연결하세요.
  • 관련 이론: split()은 리스트를 만들고, join()은 리스트의 요소를 하나의 문자열로 합칩니다.

답안)

text = "A,B,C"
split_text = text.split(",")
result = "-".join(split_text)
print(result)

split(): 리스트를 만든다.

 

join(): 리스트의 요소를 하나의 문자열로 합친다.

  • 리스트(또는 튜플) 안에 있는 문자열들을 하나로 합쳐서 새로운 문자열을 만들 때 사용하는 메서드
  • 문자열(str) 리스트에서만 작동
  • 합쳐질 전체 길이를 미리 계산한 뒤 한 번에 만들기 때문에 대량의 데이터를 처리할 때 압도적으로 효율적
"구분자".join(리스트)
  • 구분자: 문자열 사이에 끼워 넣을 글자 (공백, 콤마, 대시 등)
  • 리스트: 합칠 문자열들이 들어있는 리스트

 

필수과제 8번

사용자로부터 정수 n을 입력받아, n부터 1까지 역순으로 출력하는 프로그램을 작성하세요.

 

답안)

n = int(input())

for i in range(n, 0, -1):
    print(i)

range()의 세 번째 인자를 사용해 감소하도록 설정

 

  • n (Start): 시작값. 사용자가 5를 입력했다면 5부터 시작.
  • 0 (Stop): 종료값. 파이썬의 range는 종료값 직전까지만 반복하므로, 0은 포함되지 않고 1에서 멈춘다.
  • -1 (Step): 증감폭. 숫자를 하나씩 줄여가며(-1) 진행하라는 뜻.

 

오늘의 회고

오늘은 내일의 시험 대비 못풀었던 문제들을 다시 풀어보는 시간들을 가졌다. 이는 분명 도움되는 시간이었을 것이다. 시각화 세션에서 한 머신러닝은 너무도 신기했고 어려웠다. 조원들이 에러가 나서 해결해주고 싶었는데 크게 도움이 되지 못한거 같아 죄송했다. 좀 더 많은 공부량의 필요성을 느꼈다. 설명하지 못하는 지식은 내 것이 아니다..