본문 바로가기
IT/파이썬 기초 완전 정복

파이썬 변수와 데이터 타입 이해하기 (2)

by 지식 발전소 2024. 4. 20.
728x90
반응형

 

변수(Variable)의 개념

안녕하세요. 이번에는 파이썬 변수와 데이터 타입에 대해 자세히 알아보겠습니다. 프로그래밍을 하다 보면 데이터를 저장하고 가공해야 하는 일이 많습니다. 이때 변수를 사용하는데요. 변수란 데이터를 저장할 수 있는 메모리 공간에 붙여진 이름을 말합니다.

 

 

 

프로그래밍에서 변수는 왜 필요할까요? 보통 프로그램은 수많은 데이터를 처리해야 하는데, 매번 데이터 값 자체를 직접 다루기에는 한계가 있습니다. 따라서 변수에 데이터를 담아 손쉽게 가공하고 처리할 수 있도록 하는 것이죠.

예를 들어 학생의 이름과 나이 정보가 있다고 가정해봅시다. 이를 변수로 저장하면 다음과 같이 표현할 수 있습니다.

name = "철수"
age = 25

 

이렇게 변수 name과 age에 각각 "철수"와 25라는 값을 할당(assign)했습니다. 이후 데이터 처리가 필요할 때마다 name과 age 변수를 활용하면 됩니다.

변수 이름을 정할 때는 몇 가지 규칙이 있습니다.

  1. 영어 알파벳, 숫자, 언더스코어(_)만 사용 가능
  2. 첫 글자는 숫자가 될 수 없음
  3. 예약어(reserved words)는 사용 불가

또한 변수 이름은 그 용도를 쉽게 유추할 수 있게 의미 있게 지어주는 것이 좋습니다. 예를 들어 위의 예시에서는 변수 이름을 a나 b 같이 추상적으로 짓는 것보다 name과 age처럼 구체적으로 지었습니다.

 

데이터 타입(Data Type)의 종류

데이터를 저장하는 변수에는 저장되는 데이터의 종류에 따라 타입이 존재합니다. 파이썬에서 기본적으로 사용되는 데이터 타입은 다음과 같습니다.

  1. 정수형(Integer): 음수/양수의 정수를 표현합니다. (예: -3, 0, 537)
  2. 부동소수점(Float): 소수점이 포함된 실수를 표현합니다. (예: 3.14, -0.456)
  3. 논리형(Boolean): True 혹은 False 두 가지 값만 가질 수 있습니다.
  4. 문자열(String): 문자들의 나열로, 작은 따옴표(') 혹은 큰 따옴표(")로 표기합니다. (예: "Hello", '안녕하세요')
  5. 리스트(List): 순서가 있는 자료 집합으로, 대괄호 []로 묶어 표현합니다. (예: [1, 2, 3], ["사과", "배", "딸기"])
  6. 튜플(Tuple): 리스트와 유사하지만 값 변경이 불가능한 자료 집합입니다. 소괄호()로 묶어 표현합니다.
  7. 딕셔너리(Dictionary): 키(key)와 값(value)의 쌍으로 구성된 자료형입니다. 중괄호{}로 묶어 표현합니다. (예: {"이름": "철수", "나이": 25})

각 데이터 타입은 서로 다른 성질을 가지고 있어, 프로그램에서 다루고자 하는 데이터의 특성에 맞게 적절히 선택해야 합니다. 정수나 소수 같은 단일 값은 정수형이나 부동소수점으로, 여러 값의 나열은 리스트나 튜플로 다루는 식입니다.

데이터 타입 확인하기

그렇다면 데이터의 타입은 어떻게 확인할 수 있을까요? 파이썬에서는 type() 내장 함수를 사용하면 간단히 데이터 타입을 확인할 수 있습니다.

num = 123
print(type(num))  # <class 'int'>

pi = 3.14
print(type(pi))  # <class 'float'>

is_true = True
print(type(is_true))  # <class 'bool'>

name = "철수"
print(type(name))  # <class 'str'>

 

위 예시에서 볼 수 있듯이, 변수에 할당된 값의 타입이 출력됩니다. 정수형은 int, 부동소수점은 float, 논리형은 bool, 문자열은 str로 나타납니다.

 

또한 리스트, 튜플, 딕셔너리 등 복합 자료형의 경우에도 type()을 통해 확인할 수 있습니다.

fruits = ['사과', '배', '딸기']
print(type(fruits))  # <class 'list'>

point = (3, 4)
print(type(point))  # <class 'tuple'>  

person = {"name": "철수", "age": 25}
print(type(person))  # <class 'dict'>

이렇게 데이터 타입을 미리 확인해두면 타입 불일치로 인한 오류를 방지할 수 있어 유용합니다.

타입 변환(Type Conversion)

파이썬에서는 한 데이터 타입을 다른 타입으로 변환할 수 있습니다. 이를 타입 변환(Type Conversion) 또는 타입 캐스팅(Type Casting) 이라고 합니다. 타입 변환은 다음과 같은 내장 함수를 이용합니다.

  • int(x): x를 정수형으로 변환
  • float(x): x를 부동소수점형으로 변환
  • str(x): x를 문자열형으로 변환
  • list(x): x를 리스트형으로 변환
  • tuple(x): x를 튜플형으로 변환
  • dict(x): x를 딕셔너리형으로 변환

예를 들어, 다음과 같이 타입 변환을 할 수 있습니다.

num_str = "123"
num_int = int(num_str)  # 문자열 "123"을 정수형 123으로 변환
print(num_int, type(num_int))  # 123 <class 'int'>

pi = 3.14159
print(int(pi))  # 3 (소수점 아래 버림)

score = 85
print(str(score))  # "85" (정수형을 문자열로 변환)

물론 타입 변환 시 주의할 점도 있습니다. 예를 들어 숫자가 아닌 문자열을 int()로 변환하려 하면 오류가 발생합니다.

x = int("hello")  # ValueError: invalid literal for int() with base 10: 'hello'

이처럼 데이터 타입에 맞지 않는 값을 변환하려 하면 오류가 나므로, 이에 유의해야 합니다.

리스트와 문자열 간에도 상호 변환이 가능합니다.

letters = list("python")
print(letters)  # ['p', 'y', 't', 'h', 'o', 'n']

nums = [1, 2, 3]
print(str(nums))  # "[1, 2, 3]"

이렇게 타입 변환을 통해 데이터를 다른 형태로 가공할 수 있습니다. 이는 프로그래밍에서 자주 활용되는 기술입니다.

데이터 타입의 중요성

데이터 타입을 올바르게 이해하고 사용하는 것은 프로그래밍에서 매우 중요합니다.

 

첫째, 적절한 타입을 사용해야 메모리를 효율적으로 관리할 수 있습니다. 예를 들어, 단순한 정수 값을 저장하는데 리스트나 문자열을 사용하면 불필요한 메모리 낭비가 발생합니다.

 

둘째, 타입에 맞는 연산을 해야 오류가 나지 않습니다. 예를 들어 문자열과 정수를 더하려고 하면 타입 불일치 오류가 발생합니다. 같은 타입 간의 연산만 가능하므로 주의해야 합니다.

 

셋째, 데이터를 다룰 때 적절한 메서드를 활용할 수 있습니다. 각 데이터 타입별로 제공되는 메서드가 다릅니다. 리스트 데이터에는 append(), sort() 등의 메서드가 있지만, 정수나 문자열에는 이런 메서드가 없습니다.

 

따라서 프로그래밍 시작 단계부터 데이터 타입에 대한 개념을 확실히 이해하고, 상황에 맞게 적절한 타입을 선택하여 활용할 수 있어야 합니다. 타입을 잘못 사용하면 오류뿐만 아니라 비효율적인 코드가 될 수 있기 때문입니다.

정리 및 예상 문제

이번 시간에는 파이썬 프로그래밍에서 가장 기본이 되는 변수와 데이터 타입에 대해 알아보았습니다.

  • 변수란 데이터를 저장할 수 있는 메모리 공간에 붙여진 이름입니다.
  • 기본 데이터 타입으로는 정수형, 부동소수점, 논리형, 문자열, 리스트, 튜플, 딕셔너리가 있습니다.
  • type() 함수를 사용하면 해당 데이터의 타입을 확인할 수 있습니다.
  • 타입 변환 함수를 이용하여 데이터 타입을 바꿀 수 있습니다.

다음과 같은 질문을 받으실 수 있습니다. 미리 예상해보시기 바랍니다.

 

1) 'name = "철수", age = 25' 이렇게 변수를 할당했을 때, 각각의 데이터 타입은 무엇인가요?

2) 'a = [1, 2, 3]'일 때, a의 데이터 타입을 튜플로 바꾸려면 어떻게 해야 할까요?

3) "정수"라는 문자열을 실제 정수형으로 바꾸려면 어떤 함수를 사용해야 할까요?

 

변수와 데이터 타입은 프로그래밍의 가장 기본적인 개념입니다. 이번 내용을 통해 이 부분에 대한 확실한 이해를 가지셨기를 바랍니다. 부족한 부분이 있다면 추가 설명 부탁드리겠습니다.

참고 자료

[1] 박응용 박사, "혼자 공부하는 파이썬"

[2] Python Software Foundation, "Python Documentation: Built-in Types"

[3] Swaroop C. H., "A Byte of Python"

[4] Eric Matthes, "Python Crash Course"

 

 

한 고대 문서 이야기

여기 한 고대 문서가 있습니다. 이 문서는 B.C. 1,500년 부터 A.D 100년까지 약 1,600 여 년 동안 기록되었습니다. 이 문서의 저자는 약 40 명입니다. 이 문서의 고대 사본은 25,000 개가 넘으나, 사본간 오

gospel79.tistory.com

 

유튜브 프리미엄 월 1만원 할인받고 월 4000원에 이용하는 방법

올해 5월부터 월 8000원 정도이던 유튜브 프리미엄 요금이 15000원 정도로 인상됩니다. 각종 OTT 서비스, ChatGPT 같은 서비스들이 늘어나다보니 이런 거 몇 개만 이용하더라도 월 이용요금이 5만원을

stock79.tistory.com

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

728x90
반응형

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

댓글