숫자 계산과 문자열 처리를 따로 생각하기
오늘은 어제 정리한 변수와 자료형을 바탕으로, 실제로 값을 어떻게 계산하는지 연습했다. Python 기초를 다시 훑어보면서 느낀 건, 산술 연산자와 문자열 연산을 분리해서 이해해야 한다는 점이다. 둘 다 +를 쓰지만 의미는 전혀 다르다.
숫자에서는 계산이고, 문자열에서는 이어 붙이기다. 이 차이를 손으로 직접 쳐보는 게 중요했다.
오늘 정리한 산술 연산자
실습에서 가장 먼저 다시 본 건 기본 연산자였다.
a = 3
b = 4
print(a + b)
print(a - b)
print(a * b)
print(a / b)
print(a // b)
print(a % b)
print(a ** b)
여기서 특히 다시 정리할 필요가 있었던 건 아래 세 가지였다.
/: 나누기//: 몫%: 나머지
처음 배울 때는 /와 //를 자주 헷갈렸다. 그런데 문제 풀이를 하려면 이 차이가 꽤 중요하다. 예를 들어 “몇 묶음이 나오는지”는 몫이고, “몇 개가 남는지”는 나머지이기 때문이다.
** 연산자도 눈에 익혀둘 필요가 있었다. 거듭제곱은 수학 기호처럼 보이지 않아서 처음엔 낯설지만, 코딩테스트나 수치 계산에서 자주 보게 될 수 있다.
문자열도 연산된다는 점이 흥미로웠다
오늘 복습하면서 다시 재밌게 느낀 부분은 문자열도 연산처럼 다룰 수 있다는 점이었다.
print("파이썬" + " 공부")
print("복습" * 3)
문자열에서 +는 연결, *는 반복이라는 점이 아주 직관적이었다. 그래서 초반에는 숫자 연산보다 오히려 더 재밌게 다가오기도 했다. 다만 숫자와 문자열을 섞으면 문제가 생긴다.
age = 20
print("나이: " + str(age))
위처럼 형변환이 필요한 경우도 있다는 점을 나중에 더 분명히 정리할 필요가 있다. 오늘은 일단 “숫자와 문자열은 기본적으로 다른 세계”라는 정도만 분명히 기억해두려고 한다.
오늘 배운 내용을 문제 풀이 관점에서 보면
연산자는 단순 문법이 아니라, 결국 문제를 어떻게 쪼개서 계산할지에 대한 도구였다. 예를 들어 어떤 수가 짝수인지 확인할 때도 % 2가 필요하고, 반복 출력이나 메시지 조합을 만들 때는 문자열 연결이 필요하다.
수업 시간 실습은 아주 짧은 코드들이었지만, 오히려 그래서 각 연산자의 역할이 더 또렷하게 들어왔다. 아직 복잡한 알고리즘을 풀 수 있는 단계는 아니더라도, 최소한 “어떤 계산을 어떤 기호로 표현하는지”는 차근차근 쌓아가고 있다는 느낌이 들었다.
오늘 헷갈렸던 점
가장 자주 섞인 건 /와 //였다. 하나는 실제 나눗셈 결과이고, 하나는 몫만 남긴다는 점을 머리로는 아는데 손이 먼저 안 따라갈 때가 있었다.
문자열 +도 마찬가지였다. 숫자에서는 덧셈인데, 문자열에서는 이어 붙이기이기 때문에 자료형을 항상 의식해야 한다.
오늘의 실수 포인트
//를 일반 나눗셈처럼 착각하기 쉽다.- 숫자와 문자열을 바로
+로 더하면 오류가 날 수 있다. %는 단순 문법이 아니라 홀짝 판단, 묶음 계산 같은 실전 문제에 자주 쓰인다.
복습용으로 남기는 질문
1. 7 / 2와 7 // 2는 결과가 어떻게 다른가?
7 / 2는 실제 나눗셈 결과인 3.5가 나오고, 7 // 2는 몫만 남겨 3이 나온다.
2. 7 % 2의 결과가 의미하는 것은 무엇인가?
결과는 1이고, 이는 7을 2로 나눴을 때 남는 나머지를 뜻한다. 이런 방식으로 홀짝 여부도 확인할 수 있다.
3. "Hi" * 3의 결과는 무엇인가?
결과는 "HiHiHi"다. 문자열에서 *는 숫자만큼 반복한다는 뜻이다.
한 줄 정리
오늘은 Python의 연산자를 단순히 외우는 게 아니라, 숫자 계산과 문자열 처리를 서로 다른 규칙으로 다뤄야 한다는 감각을 익히는 데 집중했다.
Community
Comments
Comments appear immediately. Use report if something needs review.
No comments yet.