파이썬 환경을 구축하고 화면에 문장을 출력하는 데 성공했다면, 이제 프로그래밍의 진짜 핵심인 '데이터 다루기'로 넘어갈 차례입니다. 데이터를 다루기 위해 가장 먼저 이해해야 하는 개념이 바로 변수(Variable)와 문자열(String)입니다.
개념 자체는 "상자에 이름을 붙이고 값을 담는다"는 정도로 아주 간단하지만, 막상 실제로 코드를 작성해 보면 비전공자 입문자들이 가장 많이 막히는 구간이기도 합니다. 문법 규칙을 잘못 이해해서 빨간색 에러 문구를 만나거나, 원치 않는 결과가 나와 당황하는 일이 잦기 때문입니다. 오늘은 변수와 문자열을 다룰 때 초보자가 가장 자주 하는 4가지 실수를 바탕으로 개념을 확실히 정리해 드리겠습니다.
1. 변수 선언 시 자주 하는 실수: 등호(=)의 의미 오해하기
수학에 익숙한 상태에서 프로그래밍을 처음 시작하면 가장 헷갈리는 기호가 바로 등호(=)입니다.
수학에서의
=: 왼쪽과 오른쪽이 같다는 '같음(Equality)'의 의미파이썬에서의
=: 오른쪽에 있는 값을 왼쪽에 있는 변수 이름에 '대입(Assignment)'한다는 의미
x = 10
x = x + 5
수학적 관점에서 x = x + 5는 말도 안 되는 식이지만, 파이썬에서는 "현재 x에 들어있는 값 10에 5를 더해서(15), 그 결과를 다시 x에 저장하라"는 지극히 당연한 명령입니다.
변수는 데이터를 담아두는 이름표 붙은 상자일 뿐입니다. 오른쪽의 계산이 먼저 끝난 뒤 왼쪽 변수에 저장된다는 순서를 기억해야 합니다.
2. 변수 이름 짓기 실수: 예약어와 시작 숫자
변수 이름은 마음대로 정할 수 있지만, 컴퓨터가 거부하는 명확한 규칙이 있습니다.
숫자로 시작할 수 없습니다:
1st_number = 10(X) /number_1 = 10(O)공백(띄어쓰기)을 포함할 수 없습니다:
my age = 20(X) /my_age = 20(O)파이썬 예약어는 사용할 수 없습니다:
print = "안녕"(X)
특히 입문자가 가장 많이 하는 위험한 실수가 바로 print나 type처럼 파이썬이 이미 내부적으로 사용하고 있는 단어(예약어)를 변수 이름으로 쓰는 것입니다. 이렇게 작성하면 파이썬의 기본 출력 기능인 print() 함수가 덮어씌워져 이후에 글자를 출력하려고 할 때 심각한 오류가 발생합니다.
변수 이름은 가급적 소문자와 언더스코어(_)를 조합하여 직관적으로 작성하는 습관을 들이는 것이 좋습니다.
3. 문자열 연산 실수: 숫자와 글자의 결합
파이썬에서는 문자열끼리 더하거나 곱하는 연산이 가능합니다.
"파이썬" + "재밌다"를 실행하면 "파이썬재밌다"가 되고, "ㅋ" * 3을 하면 "ㅋㅋㅋ"가 출력됩니다.
하지만 아래와 같은 상황에서는 에러가 터집니다.
age = 25
print("내 나이는 " + age + "살입니다.")
이 코드를 실행하면 TypeError: can only concatenate str (not "int") to str라는 에러가 나타납니다. 글자(str)와 숫자(int)를 직접 + 기호로 더할 수 없다는 뜻입니다.
해결 방법
숫자를
str()함수로 감싸 글자로 변환하기:print("내 나이는 " + str(age) + "살입니다.")f-string 기법 사용하기(강력 추천):
print(f"내 나이는 {age}살입니다.")
문자열 맨 앞에 f를 붙이고 변수를 중괄호 { } 안에 넣는 f-string 방식을 사용하면, 형변환 신경 쓸 필요 없이 가독성 높고 깔끔한 코드를 완성할 수 있습니다.
4. 인덱싱 실수: 0부터 시작하는 순서와 범위 벗어남
문자열은 여러 개의 문자가 순서대로 나열된 집합입니다. 파이썬은 문자열 내 개별 문자의 위치를 숫자로 지정할 수 있는데, 이를 인덱싱(Indexing)이라고 합니다.
text = "Python"
print(text[0]) # 'P' 출력
여기서 초보자가 가장 흔하게 틀리는 점은 순서가 1이 아닌 0부터 시작한다는 사실입니다. 첫 번째 글자는 [1]이 아니라 [0]입니다.
또한 6글자 단어인 "Python"에서 마지막 글자를 가져오겠다고 text[6]을 입력하면 IndexError: string index out of range 에러가 발생합니다. 인덱스가 0, 1, 2, 3, 4, 5까지만 존재하기 때문입니다.
마지막 글자를 안전하게 가져오고 싶을 때는 음수 인덱스를 활용하여 text[-1]이라고 쓰는 것이 파이썬다운 효율적인 작성법입니다.
핵심요약
파이썬에서
=는 '같다'가 아니라 오른쪽 값을 왼쪽 변수에 '대입'한다는 의미입니다.숫자와 문자열을 결합할 때는
+연산자 대신 f-string 방식(f"{변수}")을 사용하는 것이 오류를 방지하는 최선책입니다.문자열 순서(인덱스)는 1이 아닌 0부터 시작하며, 범위 밖의 숫자를 지정하면
IndexError가 발생합니다.


0 댓글