001
오늘의 키워드: 복습
오늘은 라이브 세션과 과제를 풀어보는 시간을 통해 그동안 배운 내용들을 싹 훑어보는 복습의 날이 된 것 같다. 이제 간단한 함수 문제들은 백지 상태에서도 웬만하면 풀 수 있는 것 같다. 굿굿.
근데 문제가 조금만 복잡해지거나 가끔 명령어 하나가 기억 안 나면 손이 굳는 건 여전하다. 정 생각 안 나면 그동안 써온 TIL에서 찾아보는데, 이럴 때마다 나름 열심히 정리해두길 잘했다는 생각이 든다 ^^
그리고 오히려 함수보다 더 기본적이라고 할 수 있는 앞의 내용들 중에 헷갈리는 게 여러 개 있다. 중간중간 빵꾸가 뚫려있는 느낌이랄까... 다들 공부에서 제일 중요한 건 복습이라고들 하니까, 뚫린 구멍 메꾼다 생각하고 하나씩 정리한 다음에 나중에 다시 들여다봐야겠다. !!!
002
오늘 배운 내용
[라이브 세션] : 허진성 튜터님 Python 실력 쑥쑥 심화 1회차
오늘 라이브 세션은 그동안 배운 파이썬의 기초적인 내용들을 복습하는 시간이었다.
분명 다 배운 건데..... 낯이 익는데.... 구체적인 사용법이 헷갈리는 게 좀 있었다 😓
쭉 정리해보자...~
1. f-string & 출력
문자열 앞에 f를 붙이고 중괄호 안에 변수를 넣는 방식.
"안녕 " + 이름 대신 f"안녕 {이름}" 으로 쓴다.
print의 sep은 출력값 사이 구분자 지정. (기본값은 공백)
이름 = '짱구'
나이 = 5
print(f"안녕하세요 저는 {이름}이구요, 나이는 {나이}살입니다.")
# → 변수를 문자열 안에 바로 넣을 때 f"" 사용
print("짱구", "유리", "훈이", "철수", "맹구", sep='/')
# → sep: 출력값 사이에 넣을 구분자 지정
2. 자료형(Data Type) 연산 가능 여부
👌가능
| 연산 | 예시 | 결과 |
| int + float | 1 + 1.5 | 2.5 (정수형 + 실수형의 결과는 실수형) |
| str + str | "hello" + " world" | "hello world" |
| str * int | "ha" * 3 | "hahaha" |
| list + list | [1,2] + [3,4] | [1,2,3,4] |
| list * int | [1,2] * 3 | [1,2,1,2,1,2] |
❌TypeError (안 됨)
- str + int
- list + int
- list - int 등... 더 있었는데 기억이 안 난다.
3. 리스트 주요 메서드
| 메서드 | 동작 |
| append(값) | 값을 통째로 추가 |
| extend(리스트) | 리스트를 풀어서 요소를 하나씩 추가 |
| 리스트 + [값] | 새 리스트 반환. 원본은 그대로 |
| pop(인덱스) | 해당 인덱스 값을 꺼내고 삭제 |
| remove(값) | 해당 값을 찾아서 삭제 |
| b = a | 같은 객체 참조. 하나 바꾸면 둘 다 바뀜 |
| a.copy() | 독립적으로 값만 복사 |
슬라이싱 tip. [0::2] 홀수 인덱스, [1::2] 짝수 인덱스
4. 문자열 메서드
| 메서드 | 동작 |
| .upper() | 전체 대문자 |
| .lower() | 전체 소문자 |
| .title() | 각 단어 첫 글자 대문자 |
| .capitalize() | 문장 맨 앞 글자만 대문자 |
| '구분자'.join() | 리스트 요소 사이에 구분자 끼워 문자열로 합치기 |
5. sort vs sorted
- .sort(): 내 방 물건들을 그 자리에서 직접 정리 정돈하는 것 (원본이 바뀜)
- sorted(): 내 방을 그대로 복사한 '새로운 가상 방'을 만들어서 거기서 정리 정돈하는 것 (원본은 그대로 유지)
numbers = [3, 1, 4]
# 원본 리스트를 그 자리에서 바로 정렬해라!
numbers.sort()
print(numbers)
# 출력: [1, 3, 4] -> 원본이 완전히 바뀜!
⚠️ 흔히 하는 실수!
result = numbers.sort() 처럼 변수에 담으려고 하면 None이 나옴. 왜냐? 원본을 그 자리에서 고치고 끝내버려서 밖으로 돌려줄 결과(return)가 없기 때문임
numbers = [3, 1, 4]
# 원본은 건들지 말고, 정렬된 새 리스트를 복사해서 넘겨줘!
new_numbers = sorted(numbers)
print(numbers)
# 출력: [3, 1, 4] -> 원본은 끄떡없음!
print(new_numbers)
# 출력: [1, 3, 4] -> 새 바구니에 정렬된 결과가 담김!
결론 : 원본을 바꾸고 싶으면 .sort(), 원본 유지하면서 정렬된 결과만 쓰고 싶으면 sorted()
6. continue vs pass

| pass | 조건에 걸려도 이후 코드 계속 실행 |
| continue | 해당 반복을 건너뛰고 이후 코드 실행 안 함 |


7. 딕셔너리
new_dict = {'이름': '루피', '직책': '선장', '소속': '밀짚모자 해적단'}
new_dict.keys() # 키만 반환
new_dict.values() # 값만 반환
new_dict.items() # 키-값 쌍 반환
new_dict['스킬'] = '고무고무 총' # 새 키-값 추가
8. print vs return
헷갈리는 거 왜이렇게 많아 ㅋㅋㅋ
| 화면 출력만. 반환값 없음(None) | |
| return | 결과값 반환. 변수에 저장하거나 다른 곳에 활용 가능 |
def a():
print(1) # 화면에 출력만 함. 값을 저장하거나 전달할 수 없음
def b():
return 1 # 함수의 결과값을 반환. 변수에 저장하거나 다른 곳에 활용 가능
result = b() # result = 1로 저장됨
result = a() # result = None (print는 반환값이 없음)
[VOD 강의] 데이터 분석 파이썬 종합반 5주차
는 과제하느라 못 들었다 !

003
오늘의 시행착오
▼ HACCP 테스트를 받지 못한 품목 리스트를 반환하는 함수 구하기

빈 리스트 만드는 거 자꾸 까먹음!!
빈 리스트 만들고, 거기다가 조건에 맞는 거 추가(.append)하는 흐름 까먹지 말자.
그리고 이어지는 문제에서 좀 막힘...😅
▼HACCP 미완료 품목 중에서 중량 미달에 해당하는 품목의 갯수를 반환하는 함수


내 코드 vs 수정된 코드: 바뀐 점 딱 3가지
- 함수 정의할 때 괄호 안의 문법 에러 수정
- 기존: def underweight(untested(factory_products...)): X 안 돼!!! (함수 선언할 때 다른 함수 호출문을 통째로 넣음)
- 변경: def underweight(untested_list, factory_products) (위의 함수 데이터를 받아올 매개변수 만들어서 깔끔하게 변경)
- .values() → .items()
- 기존: factory_products.values()를 써서 '중량'만 꺼냄 → 꺼내진 중량이 미완료 품목인지 확인 불가
- 변경: .items()를 써서 '품목명(key)'과 '중량(weight)'을 동시에 꺼내어 필터링이 가능해짐.
- 조건문에 and 결합
- 중량만 100 미만인지 보던 것에 if key in untested_list 조건도 추가해서 "HACCP 미완료 품목이 맞는지"까지 동시에 검사하도록 수정함.
일단 오늘은 ai의 도움을 쫌 받았지만,,, 내용 잘 기억했다가 다음주에 다시 해보자.

▼ 코드 동작 원리
1. 빈 주머니 만들기 (answer = [])
조건을 만족하는 x들을 저장할 빈 리스트를 생성
나중에 이 리스트에 모인 숫자 중 최솟값을 골라냄
2. for 반복문으로 후보 골라냄 (for x in range(2, n):)
x가 될 수 있는 숫자를 2부터 n-1까지 하나씩 꺼내며 반복
(1은 어떤 수를 나눠도 나머지가 0이 되니까 2부터 시작)
3. 조건문 필터링 리스트에 추가 (if n % x == 1:)
파이썬의 % 연산자를 사용해 나머지가 1이 되는지 확인,
4. 리스트에 추가 (answer.append(x))
조건에 부합하면 1번에서 만든 리스트에 추가(.append)
5. 정답 반환 (return min(answer))
반복이 끝나 answer 리스트에 저장된 값 중 최소값을 찾아야 함
min()으로 리스트 내 가장 작은 값 도출하여 반환
004
다음 주 학습할 것
- (주말) 일주일 동안 공부한 거 안 까먹게 하루 1시간 씩이라도 보기
ㄴ 튜터님도, 매니저님도 주말엔 쉬라고 하셨으니 정말 조금만......(근데 과연 볼까?)
- 파이썬 종합반 강의 5주차 수강 (~화요일)
- 과제 레벨 3 좀만 더 고민해보기... (너무 어려워요 ㅠㅠㅠ)

+ 여담...
저의 TIL이 QAQC 6기의 첫 번째 우수 TIL로 뽑혔다고 합니다.
갑자기 방문자수 늘어서 뭔가 좀 부끄러움...........
아무튼 감사합니다.

'Today I Learned' 카테고리의 다른 글
| [내일배움캠프 QA/QC 트랙 6기 본캠프] TIL #012 (0) | 2026.05.27 |
|---|---|
| [내일배움캠프 QA/QC 트랙 6기 본캠프] TIL #011 (1) | 2026.05.26 |
| [내일배움캠프 QA/QC 트랙 6기 본캠프] TIL #009 — 함수 (0) | 2026.05.21 |
| [내일배움캠프 QA/QC 트랙 6기 본캠프] TIL #008 — 🤯 (0) | 2026.05.20 |
| [내일배움캠프 QA/QC 트랙 6기 본캠프] TIL #007 — 프로그래밍 기초 (0) | 2026.05.19 |