복붙노트

[PYTHON] Python Math - TypeError : 'NoneType'객체는 subscriptable이 아닙니다.

PYTHON

Python Math - TypeError : 'NoneType'객체는 subscriptable이 아닙니다.

나는 수학을위한 작은 프로그램을 만들고있다. (특별한 이유가없이 그냥 원한다). "TypeError : 'NoneType'객체가 subscriptable이 아니라는 오류가 발생했다.

전에이 오류를 본 적이 없으므로 그 의미가 무엇인지 전혀 알지 못합니다.

import math

print("The format you should consider:")
print str("value 1a")+str(" + ")+str("value 2")+str(" = ")+str("value 3a ")+str("value 4")+str("\n")

print("Do not include the letters in the input, it automatically adds them")

v1 = input("Value 1: ")
v2 = input("Value 2: ")
v3 = input("Value 3: ")
v4 = input("Value 4: ")

lista = [v1, v3]
lista = list.sort(lista)

a = lista[1] - lista[0]

list = [v2, v4]
list = list.sort(list)

b = list[1] = list[0]

print str(a)+str("a")+str(" = ")+str(b)

오류:

Traceback (most recent call last):
  File "C:/Users/Nathan/Documents/Python/New thing", line 16, in <module>
    a = lista[1] - lista[0]
TypeError: 'NoneType' object is not subscriptable

해결법

  1. ==============================

    1.

    lista = list.sort(lista)
    

    이것은 있어야한다.

    lista.sort()
    

    .sort () 메서드는 현재 위치에 있으며 None을 반환합니다. 값을 반환하는 적절한 위치에 있지 않은 것을 원한다면

    sorted_list = sorted(lista)
    

    # 1 : 목록리스트에 전화하지 마십시오. 그것은 내장 목록 유형을 파괴합니다.

    # 2 :이 줄이 무엇을 의미하는지 잘 모르겠습니다.

    print str("value 1a")+str(" + ")+str("value 2")+str(" = ")+str("value 3a ")+str("value 4")+str("\n")
    

    간단하게

    print "value 1a + value 2 = value 3a value 4"
    

    ? 다른 말로하면, 나는 왜 당신이 str을 이미 str이라고 부르는지를 알지 못한다.

    # 3을 제외하고 : 때때로 print ( "something") (Python 3 구문)을 사용하고 print "something"(Python 2)을 사용하기도합니다. 후자는 py3에 SyntaxError를 줄 것이므로, *를 실행해야합니다.이 경우 습관에 들기를 원하지 않거나 여분의 괄호로 인쇄 튜플을 감습니다. 나는 이것이 충분히 잘 작동 함을 인정한다. 왜냐하면 괄호 안에 오직 하나의 요소 만이 튜플로 해석되지는 않지만 파이썬의 눈에는 이상하게 보인다.

  2. ==============================

    2.listA의 값이 실제로 None이므로 TypeError : 'NoneType'객체가 subscriptable이 아닌 예외가 발생합니다. Python 커맨드 라인에서 이것을 시도하면 코드에있는 TypeError를 재현 할 수 있습니다 :

    listA의 값이 실제로 None이므로 TypeError : 'NoneType'객체가 subscriptable이 아닌 예외가 발생합니다. Python 커맨드 라인에서 이것을 시도하면 코드에있는 TypeError를 재현 할 수 있습니다 :

    None[0]
    

    lista가 None으로 설정되는 이유는 list.sort ()의 반환 값이 None이므로 원래 목록의 정렬 된 복사본을 반환하지 않기 때문입니다. 그 대신 문서가 지적한대로 목록이 복사본 대신 만들어 지도록 정렬됩니다 (효율성을 높이기 위해).

    사용할 수있는 원본 버전을 변경하지 않으려면

    other_list = sorted(lista)
    
  3. ==============================

    3.이 링크에서 https://docs.python.org/2/tutorial/datastructures.html이 방법을 읽을 수 있습니다. "목록의 항목을 제자리에 정렬"이것은 결과 값이 정렬 된 그 결과는 그 자체가 될 것입니다. 이 함수는 없음을 반환합니다.

    이 링크에서 https://docs.python.org/2/tutorial/datastructures.html이 방법을 읽을 수 있습니다. "목록의 항목을 제자리에 정렬"이것은 결과 값이 정렬 된 그 결과는 그 자체가 될 것입니다. 이 함수는 없음을 반환합니다.

    14 번 줄에서 "lista"에 결과를 지정하면

    lista = list.sort(lista)
    

    당신은 None으로 설정합니다. 그것은 오류입니다. 항상 데이터가 없으므로 사용할 수 없습니다. subscriptable. "TypeError : 'NoneType'개체는 subscriptable이 아닙니다."

    목록을 정렬하기 위해이 오류를 수정하려면 14 행에서 다음을 수행하십시오.

    lista.sort() # this will sort the list in line
    

    그러나 몇 가지 다른 오류가 있습니다. 18 번 줄에

    list = [v2, v4]
    

    당신은 clob을 "list"타입으로 만들면 다음과 같은 에러 메시지가 나옵니다 :

    TypeError: 'list' object is not callable
    

    이를 수정하려면 다음과 같이하십시오.

    lista2 = [v2, v4]
    

    다시 19 번 줄에서 14 번 줄과 같은 오류가 발생합니다. 다른 목록을 정렬하려면 다음과 같이하십시오.

    lista2.sort()
    

    21 행에서 내장 된 유형 목록을 색인하려고합니다. 이것을 수정하려면 :

    b = lista2[1] = lista2[0]
    

    이것으로 코드가 잘 돌아갑니다. 마지막으로 정확한 코드 :

    import math
    
    print("The format you should consider:")
    print str("value 1a")+str(" + ")+str("value 2")+str(" = ")+str("value 3a ")+str("value 4")+str("\n")
    
    print("Do not include the letters in the input, it automatically adds them")
    
    v1 = input("Value 1: ")
    v2 = input("Value 2: ")
    v3 = input("Value 3: ")
    v4 = input("Value 4: ")
    
    lista = [v1, v3]
    lista.sort()
    
    a = lista[1] - lista[0]
    
    lista2 = [v2, v4]
    lista2.sort()
    
    b = lista2[1] = lista2[0]
    
    print str(a)+str("a")+str(" = ")+str(b)
    
  4. ==============================

    4.실제로 예상 할 수없는 데이터를 표시하기 때문에 오류 메시지 Object는 subscriptable이 아닙니다.

    실제로 예상 할 수없는 데이터를 표시하기 때문에 오류 메시지 Object는 subscriptable이 아닙니다.

    내장 메서드에서 정렬 itelsef 목록에서 호출

    like lista = lista.sort (list)

    그런 다음 필요한 작업을 수행하십시오.

  5. from https://stackoverflow.com/questions/9320766/python-math-typeerror-nonetype-object-is-not-subscriptable by cc-by-sa and MIT license