안녕하세요! 파이썬 기초부터 차근차근 다지며 코딩 테스트와 PCCE 합격을 향해 달려가고 있는 초보 개발자입니다. 오늘은 하루 동안 공부하면서 부딪혔던 다양한 에러들과 핵심 문법 개념들을 총정리해 보려고 합니다.
실제 코딩 테스트 문제를 바탕으로, 나만의 창작 예시를 통해 알기 쉽게 풀어보겠습니다. 오늘 배운 내용만 잘 기억해도 파이썬 기초의 뼈대는 확실히 잡힐 거예요!
(광고 영역)
- 함수의 기본 구조 (
def와return) - 문자열 누적과 복합 대입 연산자 (
+=) - 타입 변환을 통한 이어 붙이기 (
str(),int()) - 배수 판정을 위한 나머지 연산자 (
%) - 반복문과
range()의 간격 활용, 그리고 제곱(i * i) - 조건문과 불리언(
True/False), 연산자 함정 주의하기
1. 함수(def)의 정의와 누적 연산자 (+=)
파이썬에서 코드를 재사용 가능한 상자로 만드는 방법이 바로 def입니다. 또한 반복문을 돌며 값을 계속 쌓아갈 때는 answer = answer + i를 줄인 복합 대입 연산자 +=를 사용합니다.
✨ 문자열 리스트 이어 붙이기 예시
def solution(arr):
answer = ''
for char in arr:
answer += char # 기존 문자열 뒤에 새로운 문자를 계속 누적
return answer
2. 숫자를 문자로, 문자를 숫자로! (str, int)
정수 `12`와 `3`을 그냥 더하면 수학 덧셈인 `15`가 되지만, 이어 붙여서 `123`으로 만들고 싶다면 어떻게 해야 할까요? 바로 문자열로 변환(`str`)한 뒤 더하고, 비교를 위해 다시 정수로 변환(`int`)해야 합니다.
def solution(a, b):
case1 = int(str(a) + str(b)) # a ⊕ b
case2 = int(str(b) + str(a)) # b ⊕ a
return max(case1, case2) # 둘 중 큰 값 리턴
※ 주의: 화면에 보여줄 때는 print()를 쓰지만, 코딩 테스트 채점 때는 반드시 결과를 건네주는 return을 써야 합니다!
3. 배수를 구할 때는 나누기(/)가 아니라 나머지(%)!
어떤 수가 특정 숫자의 배수인지 확인할 때는 몫을 구하는 나누기(`/`)를 쓰면 안 됩니다. 반드시 나머지가 0인지 확인하는 나머지 연산자(%)를 사용해야 합니다. 또한 하드코딩(`2`로 고정)하지 않고 매개변수 `n`을 그대로 활용해야 합니다.
def solution(num, n):
if num % n == 0:
return 1
else:
return 0
4. 홀짝 조건과 제곱 표현 (`i * i` vs `i ** 2`)
range(시작, 끝, 간격)을 이용하면 홀수나 짝수만 골라서 순회할 수 있습니다. 이때 짝수의 제곱을 구할 때는 단순히 2를 곱하는 `i * 2`가 아니라, 자기 자신을 곱하는 **`i * i`** 또는 거듭제곱 연산자인 **`i ** 2`**를 써야 합니다.
def solution(n):
answer = 0
if n % 2 != 0: # 홀수일 때
for i in range(1, n + 1, 2):
answer += i
else: # 짝수일 때 (제곱의 합)
for i in range(2, n + 1, 2):
answer += i * i
return answer
5. 조건 문자열 합치기 & 대입(=) vs 비교(==) 주의점
부등호 문자열을 합쳐서(ineq + eq) 비교 조건으로 활용할 수 있습니다. 또한, 참과 거짓을 판별할 때는 값을 넣는 대입 연산자 `=`가 아니라 비교 연산자 `==`를 써야 하며, 불리언 값은 첫 글자가 대문자인 `True`와 `False`여야 합니다.
def solution(a, b, flag):
# flag가 True면 덧셈, False면 뺄셈 (flag 자체를 조건으로 사용 가능)
if flag:
return a + b
else:
return a - b
🚨 오늘 가장 많이 마주친 실수 체크리스트
- 출력은 `print`가 아니라 `return`으로 하기!
- 변수 초기화 코드(`answer = 0`)를 조건문 안이나 리턴 바로 위에 잘못 배치해서 값을 덮어씌우지 않기!
- 값을 넣을 때는 `=` 하나, 비교할 때는 `= ` 두 개(`==`) 쓰기!
(광고 영역)
에러를 만나고 스스로 원인을 찾아 수정해 나가는 과정이 진짜 실력이 되는 것 같습니다. 오늘도 코딩 공부 화이팅입니다! 👋