vacia tabla sintaxis listas lista crear comandos codigos python math sorting in-place

tabla - sintaxis python



Python Math-TypeError: el objeto ''NoneType'' no es un subĂ­ndice (3)

En este enlace https://docs.python.org/2/tutorial/datastructures.html puede leer este método "Ordenar los elementos de la lista en su lugar" esto significa que el valor del resultado se ordenará y el resultado estará en sí mismo. La función devuelve Ninguno.

Cuando asigna el resultado a "lista" en la línea 14

lista = list.sort(lista)

tu área configurándolo en Ninguno. Ese es el error. Ninguno siempre tiene datos y no puede ser subscriptable. "TypeError: el objeto ''NoneType'' no es un subíndice"

para corregir este error (para ordenar la lista) haga esto en la línea 14:

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

Pero hay algunos otros errores: en la línea 18 cuando asignas:

list = [v2, v4]

Si cliqueas este tipo de "lista", obtendrás el siguiente error:

TypeError: ''list'' object is not callable

Para corregir esto haz eso, di:

lista2 = [v2, v4]

Nuevamente en la línea 19 el mismo error de la línea 14. Haga esto para ordenar la otra lista:

lista2.sort()

En la línea 21 está intentando indexar la lista de tipos incorporada. Para corregir esto:

b = lista2[1] = lista2[0]

Con esto tu código funcionará bien. Finalmente todo el código correcto:

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)

Estoy haciendo un pequeño programa para matemáticas (sin ninguna razón en particular, solo que quería) y me encontré con el error "TypeError: el objeto ''NoneType'' no se puede subscribir.

Nunca antes había visto este error, así que no tengo idea de lo que significa.

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)

El error:

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


La excepción TypeError: ''NoneType'' object is not subscriptable porque el valor de lista es en realidad None . Puede reproducir TypeError que obtiene en su código si lo intenta en la línea de comandos de Python:

None[0]

La razón por la que la lista se establece en Ninguno es porque el valor de retorno de list.sort() es None ... no devuelve una copia ordenada de la lista original. En cambio, como señala la documentación , la lista se ordena en lugar de hacer una copia (esto es por razones de eficiencia).

Si no quieres alterar la versión original puedes usar

other_list = sorted(lista)


lista = list.sort(lista)

Esto debería ser

lista.sort()

El método .sort() está en el lugar y devuelve Ninguno. Si desea algo que no está en el lugar, que devuelve un valor, puede usar

sorted_list = sorted(lista)

Aparte # 1: por favor no llame a su list listas. Eso golpea el tipo de lista incorporada.

Aparte # 2: No estoy seguro de lo que esta línea debe hacer:

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

es simplemente

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

? En otras palabras, no sé por qué estás llamando a las cosas que ya son str.

Aparte # 3: a veces usas print("something") (sintaxis de Python 3) y otras veces usas print "something" (Python 2). Este último le daría un SyntaxError en py3, por lo que debe estar ejecutando 2. *, en cuyo caso probablemente no quiera acostumbrarse o terminará imprimiendo tuplas, con paréntesis adicionales. Admito que funcionará bastante bien aquí, porque si solo hay un elemento entre paréntesis no se interpreta como una tupla, pero parece extraño para el ojo pitón.