반응형
데이터 타입의 정의
- 파이썬에서 다루는 데이터의 종류를 나타내는 것을 의미합니다. 변수에 저장되는 데이터의 형태를 결정하며, 이에 따라 변수가 어떤 연산과 작업을 수행할 수 있는지 결정합니다.
데이터 타입의 종류
- 주요 데이터 타입으로 숫자(Number) 문자열(String), 시퀀스(Sequence), 집합(Set), 불리언(Boolean)이 있습니다.
데이터 타입 특징
동적 타이핑
- 파이썬에서는 변수가 아닌 데이터 자체가 데이터 타입을 가지며, 변수의 타입은 할당된 데이터에 따라 동적으로 결정됩니다. 이 특성을 동적 타이핑이라고 합니다.
변수 x의 데이터 타입은 할당된 값에 따라 동적으로 변화합니다.# 변수 x에 정수를 할당 x = 10 print(x, type(x)) # 출력: 10 <class 'int'> # 변수 x에 문자열을 할당 x = "Hello, World!" print(x, type(x)) # 출력: Hello, World! <class 'str'> # 변수 x에 리스트를 할당 x = [1, 2, 3, 4, 5] print(x, type(x)) # 출력: [1, 2, 3, 4, 5] <class 'list'>
강한타입
- 파이썬은 강한 타입로, 다른 데이터 타입 간의 연산 시 암시적 변환이 일어나지 않습니다. 이로 인해, 데이터 타입이 다른 값들을 합치거나 연산하려면 사용자가 직접 타입 변환을 해야합니다.
# 정수와 문자열을 직접 연결하려 하면 오류 발생 num = 10 str1 = 'Hello' combined = num + str1 # TypeError 발생 # 명시적으로 데이터 타입 변환 후 연결 num = 10 str1 = 'Hello' combined = str(num) + str1 # '10Hello' print(combined)
객체지향
- 파이썬의 모든 데이터는 객체로 취급되며, 이는 숫자부터 문자열, 리스트, 딕셔너리, 사용자 정의 클래스까지 포함합니다. 각각의 속성과 메소드를 가집니다.
# 문자열 객체 str1 = "Hello, World!" print(str1.upper()) # upper()는 문자열 객체의 메소드입니다. # 리스트 객체 list1 = [1, 2, 3, 4, 5] list1.append(6) # append()는 리스트 객체의 메소드입니다. print(list1) # 사용자 정의 클래스와 그 인스턴스 class MyClass: def __init__(self, name): # 속성 정의 self.name = name def say_hello(self): # 메소드 정의 return f"Hello, {self.name}!" my_instance = MyClass("Python") print(my_instance.name) # 속성 사용 print(my_instance.say_hello()) # 메소드 사용
가변성과 불가변성
- 파이썬의 데이터 타입은 가변 타입과 불변 타입으로 분류됩니다. 가변 타입은 리스트, 딕셔너리처럼 생성 이후 값이 변경할수 있지만, 불변타입은 숫자, 문자열, 튜플 등과 같이 한 번 생성된 후에는 그 값을 변경할 수 없는 데이터 타입을 의미합니다.
# 가변 타입 예제: 리스트 list1 = [1, 2, 3] print(list1) # 출력: [1, 2, 3] list1[0] = 100 print(list1) # 출력: [100, 2, 3] - 리스트 내용 변경 가능 # 불변 타입 예제: 문자열 str1 = "Hello" print(str1) # 출력: Hello try: str1[0] = "h" except TypeError as e: print(e) # 출력: 'str' object does not support item assignment - 문자열 내용 변경 불가 # 불변 타입 예제: 튜플 tuple1 = (1, 2, 3) print(tuple1) # 출력: (1, 2, 3) try: tuple1[0] = 100 except TypeError as e: print(e) # 출력: 'tuple' object does not support item assignment - 튜플 내용 변경 불가
참고 자료
https://www.geeksforgeeks.org/python-programming-language/?ref=shm
https://docs.python.org/ko/3/tutorial/index.html
https://roadmap.sh/python
https://www.w3schools.com/python/default.asp
반응형