학습 기록
Python 공부 기록 #3 - 컴퓨터에게 생각하는 법 가르치기 (연산자, 제어문)
- 목차
인트로
연산자
If문(조건문)
딕셔너리(Dictionary)
세트(Set)
아웃트로
인트로
지난 포스팅(#2)에서 리스트나 딕셔너리 같은 ’데이터를 담는 그릇’에 대해 정리했었죠.
그런데 그릇에 재료만 잔뜩 담아둔다고 요리가 되지는 않더라고요.
이제 컴퓨터에게 “이럴 땐 이렇게 하고, 저럴 땐 저렇게 해!“라고 명령을 내려야 비로소 프로그램이 돌아가기 시작합니다.
오늘은 프로그래밍의 ’뇌’라고 할 수 있는 연산자와 제어문(if, for, while)을 공부한 내용을 정리해 봅니다.
- 연산자
더하기(+), 빼기(-) 같은 건 너무 당연하니 넘어가고, 파이썬을 공부하면서 “어? 이건 좀 특이한데?” 싶었던 것들 위주로 정리했습니다.
나눗셈의 두 얼굴 (/ vs //)
5 / 2 = 2.5
5 // 2 = 2
/: 우리가 아는 그 나눗셈. 소수점까지 나옵니다.
//: 몫만 구하는 나눗셈. 정수로 딱 떨어져야 할 때 사용합니다.
나머지 연산자 (%)
처음엔 이걸 어디다 쓰나 했는데, ‘짝수/홀수 판별’(n % 2 == 0)하거나 ‘3의 배수 찾기’ 같은 로직 짤 때 필수더라고요.
논리 연산자 (and, or, not)
엑셀 함수 쓸 때랑 똑같습니다. A and B는 둘 다 참일 때, or는 하나라도 참일 때!
- if문 (조건문)
프로그램에 판단력을 주는 문법입니다. 엑셀의 IF 함수를 코드로 푼다고 생각하면 이해가 빠르더군요.
score = 85
if score >= 90:
print(“A등급! 칼퇴하세요.”)
elif score >= 80:
print(“B등급. 고생하셨습니다.”)
else:
print(“재검토 필요…”)
🔥 중요 체크: 파이썬은 들여쓰기(Indentation)가 생명입니다! if문 다음에 오는 줄은 무조건 스페이스바 4칸이나 Tab을 쳐서 안으로 밀어 넣어야 “아, 이게 조건에 걸리는 내용이구나” 하고 인식합니다. 들여쓰기 안 하면 바로 에러 납니다.
- 반복문 (for, while)
제가 코딩을 배우는 가장 큰 이유입니다. 1,000개의 엑셀 파일을 일일이 열어보는 건 사람이 할 짓이 아니잖아요? 그럴 때 반복문을 씁니다.
- for문: 리스트에 있는 걸 하나씩 꺼내서 처리할 때 가장 많이 씁니다.
files = [“보고서1.xlsx”, “보고서2.xlsx”, “이미지.png”]
for file in files:
print(f“{file} 처리 중…“)
결과: 리스트에 있는 개수만큼 알아서 반복 실행됩니다.
- while문: 몇 번 반복할지 모를 때, 특정 조건이 만족될 때까지 계속 돌립니다.
count = 0
while count < 5:
print(f“{count}번째 실행“)
count += 1
⚠️ 주의: while문은 끝나는 조건을 제대로 안 주면 ’무한 루프’에 빠져서 프로그램이 영원히 멈추지 않을 수도 있습니다.
이때 필요한 게 바로 비상 탈출 버튼, break입니다! 반복문 안에서 특정 조건이 되었을 때 break를 만나면 뒤도 안 돌아보고 반복을 끝내버립니다.
count = 0
while True: # 무조건 무한 반복
count += 1
print(f“{count}번째 실행 중…“)
if count == 5:
print(“이제 그만! 탈출합니다.”)
break # 여기서 반복문을 강제로 종료합니다.
- try-except: 예외 처리
코드를 짜다 보면 꼭 에러가 납니다. 숫자를 0으로 나누거나, 없는 파일을 열려고 하거나요.
이때 프로그램이 “퍽” 하고 꺼지는 걸 막아주는 안전장치가 바로 예외 처리입니다.
try:
result = 10 / 0
except ZeroDivisionError:
print(“0으로 나눌 수 없어요! (프로그램 안 꺼짐)”)
이걸 잘 써야 퇴근하고 나서 “프로그램 뻗었어요”라는 연락을 안 받을 수 있다고 합니다. 😂
- 아웃트로
오늘은 컴퓨터에게 일을 시키는 문법들을 정리해 봤습니다.
조건문(if)으로 판단력을 주고,
반복문(for)으로 성실함을 주고,
예외처리(try)로 맷집을 길러줬네요.
이것들을 조합하면 이제 간단한 자동화 스크립트는 짤 수 있을 것 같은 자신감이 듭니다.
다음 포스팅에서는 코드가 너무 길어지지 않게 기능별로 묶어주는 ’함수(Function)’에 대해 공부하고 정리해 오겠습니다.
혹시 설명 중에 틀린 부분이 있거나 더 좋은 팁이 있다면 댓글로 알려주세요! 같이 공부해요. 😊