콘텐츠 내 자동삽입광고

광고1

posted by 초코생크림빵 2025. 8. 16. 16:13
반응형

>>> a=(10,20,30)
>>> a[0]=100
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    a[0]=100
TypeError: 'tuple' object does not support item assignment
>>>  a.append(40)
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    a.append(40)
AttributeError: 'tuple' object has no attribute 'append'

파이썬 입니다. 소스의 오류가 난 이유를 자세히 설명

설명시작)

a=(10,20,30)와 a[0]=100 및 a.append(40) 코드가 오류가 나는 이유는 파이썬의 튜플(Tuple)이 불변(immutable) 자료형이기 때문입니다. 불변 자료형은 한 번 생성되면 그 값을 변경하거나 요소를 추가, 삭제할 수 없습니다.

TypeError: 'tuple' object does not support item assignment

첫 번째 오류인 TypeError: 'tuple' object does not support item assignment는 다음과 같은 이유로 발생합니다:

  • 튜플은 불변입니다: a=(10,20,30) 코드는 a라는 튜플을 만들고 그 안에 10, 20, 30을 담습니다. 튜플은 생성된 후에는 개별 요소를 수정할 수 없습니다.
  • 할당 연산자: a[0]=100 코드는 튜플 a의 첫 번째 요소(인덱스 0)를 100으로 바꾸려고 시도합니다. 이는 불변인 튜플의 값을 바꾸는 행위이므로 파이썬 인터프리터가 이를 허용하지 않아 오류가 발생합니다.

리스트(List)와 같은 가변(mutable) 자료형에서는 my_list[0]=100과 같은 할당이 가능합니다.

AttributeError: 'tuple' object has no attribute 'append'

두 번째 오류인 AttributeError: 'tuple' object has no attribute 'append'는 다음과 같은 이유로 발생합니다:

  • 튜플은 요소를 추가할 수 없습니다: append() 메서드는 리스트(list)에 새로운 요소를 추가하기 위해 사용되는 기능입니다.
  • 메서드(Method)의 부재: 튜플은 불변 자료형이므로, 요소를 추가하는 기능 자체가 없습니다. 따라서 a.append(40)과 같이 튜플에 없는 append라는 메서드를 호출하려고 하면 AttributeError가 발생합니다.

요약

자료형 가변성 a[0]=100 a.append(40)
튜플(Tuple) 불변(immutable) ❌ 불가능 ❌ 불가능
리스트(List) 가변(mutable) ✅ 가능 ✅ 가능

 

두 오류 모두 튜플이 변경될 수 없는 자료형이라는 본질적인 특성 때문에 발생했습니다. 만약 값을 변경하거나 요소를 추가하고 싶다면 튜플 대신 리스트를 사용해야 합니다.

반응형

콘텐츠 내 자동삽입광고