스택큐힙리스트

'TypeError: 'int' 객체는 subscriptable하지 않습니다' 오류를 고치는 방법 본문

카테고리 없음

'TypeError: 'int' 객체는 subscriptable하지 않습니다' 오류를 고치는 방법

스택큐힙리스트 2023. 11. 23. 09:52
반응형

저는 간단한 코드 한 조각을 시도했습니다. 사람의 이름과 나이를 받아서 21세가 되는 날을 알려주려고 했는데... 부정적인 측면과 그런 것들은 고려하지 않고 그냥 랜덤하게 했습니다.


이런 'int' object is not subscriptable 오류가 계속 발생합니다.


name1 = raw_input(이름이 무엇인가요? )
age1 = raw_input(몇 살이세요? )
x = 0
int([x[age1]])
twentyone = 21 - x
print name1 + 님, 21세가 되는 날까지 남은 시간은: + twentyone + 년입니다.

---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[34], line 4
2 age1 = input(몇 살이세요? )
3 x = 0
----> 4 int([x[age1]])
5 twentyone = 21 - x
6 print name1 + 님, 21세가 되는 날까지 남은 시간은: + twentyone + 년입니다.
TypeError: 'int' object is not subscriptable

답변 1

당신이 x = 0라고 입력하면, 이는 새로운 int 변수 (이름)를 생성하고 그 변수에 0을 할당하는 것입니다.


x[age1]을 입력하면, x가 배열인 것처럼 age1번째 항목에 액세스하려고 시도하는 것입니다.

답변 2

제목: TypeError: 'int' 객체는 글자를 사용할 수 없습니다. 해결 방법
서론:
TypeError: 'int' 객체는 글자를 사용할 수 없는 오류는 파이썬 프로그래밍 언어에서 종종 발생하는 오류 중 하나입니다. 이 오류는 정수(integer) 형식의 객체에서 배열처럼 인덱싱하는 동작을 시도할 때 발생합니다. 이번 글에서는 TypeError: 'int' 객체는 글자를 사용할 수 없는 오류의 원인과 해결방법에 대해 자세히 알아보겠습니다.
본론:
TypeError: 'int' 객체는 글자를 사용할 수 없는 오류는 다양한 상황에서 발생할 수 있습니다. 주로 리스트(list)나 튜플(tuple)과 같은 순서가 있는 객체에서 인덱싱을 시도할 때 발생합니다. 이러한 객체들은 순서가 존재하며, 원소에 접근하기 위해 인덱스(정수)를 사용합니다.
이 오류가 발생할 수 있는 가장 일반적인 상황은 리스트나 튜플이 아닌 정수 객체를 인덱싱하려고 할 때입니다. 예를 들어, 다음과 같은 코드를 실행한다고 가정해보겠습니다:
```python
number = 1234
print(number[0])
```
위의 예시에서 number 변수는 정수(integer) 형태의 객체로 선언되었습니다. 그런데 이 정수 객체에 대해 `number[0]`과 같이 인덱싱을 시도하는 경우, 'int' 객체는 글자를 사용할 수 없다는 TypeError가 발생하게 됩니다.
이러한 오류를 해결하기 위해서는 인덱싱 가능한 객체를 사용해야 합니다. 정수(integer) 객체는 글자가 아니기 때문에 인덱싱을 지원하지 않습니다.
따라서 정수(integer) 객체에서 특정 위치의 글자를 가져오기 위해서는 문자열(str)로 변환해야 합니다. 예를 들어, 위의 예시를 다음과 같이 수정할 수 있습니다:
```python
number = 1234
number_str = str(number)
print(number_str[0])
```
위의 코드에서는 정수 객체인 number를 문자열(str) 객체로 변환한 후 인덱싱을 시도하였습니다. 이렇게 해주면 기존 오류를 해결할 수 있습니다.
결론:
TypeError: 'int' 객체는 글자를 사용할 수 없다는 오류는 파이썬에서 종종 발생하는 오류 중 하나입니다. 이 오류는 정수(integer) 객체에서 인덱싱을 시도할 때 발생하며, 해결하기 위해서는 정수 객체를 문자열(str) 형태로 변환한 후 인덱싱을 시도해야 합니다. 이를테면, `str(obj)[index]`와 같이 사용할 수 있습니다. 이렇게 함으로써 TypeError: 'int' 객체는 글자를 사용할 수 없다는 오류를 해결할 수 있습니다. 이번 글을 통해 해당 오류의 원인과 해결 방법에 대해 이해하였고, 이후 유사한 상황에서 발생하는 오류를 미리 예방할 수 있기를 기대합니다.

반응형
Comments