python xrange
Funciones y métodos de Python
Michael Zippo
01.11.2021
En Python 3 , se eliminò la funciòn xrange. Si intenta utilizar la funciòn xrange en un programa Python 3, encontrará el NameError: name " xrange " no está definido
error.
En esta guìa, vamos a discutir qué significa este error y por qué puede encontrarlo. Discutiremos un ejemplo de este error para que pueda aprender còmo solucionarlo en su còdigo.
NameError: name " xrange " no está definido
En Python 2, la funciòn xrange te permite crear un rango de n√∫meros. Considere el siguiente fragmento de còdigo:
Nuestro còdigo devuelve [0, 1, 2], que son todos los n√∫meros en el rango de 0 y 3 (sin incluir 3). La funciòn xrange ()
devuelve una lista de n√∫meros.
Python 3 eliminò la funciòn xrange ()
en favor de una nueva funciòn llamada range () . La funciòn range ()
, como xrange ()
, produce un rango de n√∫meros.
Hay dos diferencias entre xrange ()
y range ()
;
-
xrange ()
y range ()
tienen diferentes nombres. - La funciòn
xrange ()
genera una lista de n√∫meros. La funciòn range ()
genera un objeto.
Debido a que la funciòn range ()
genera un objeto, debe convertirlo en una lista si desea ver una lista de n√∫meros. De lo contrario, estos dos métodos funcionan de la misma manera.
Un escenario de ejemplo
Vamos a escribir un programa que muestre los primeros jugadores que están en la parte superior de una tarjeta tabla de clasificaciòn del juego. Para empezar, declaremos nuestra tabla de clasificaciòn como una lista :
81% de los participantes declararon que se sentìan más confiados sobre sus perspectivas laborales de tecnologìa después de asistir a un campamento de entrenamiento. Asigne a un bootcamp hoy mismo.
El graduado promedio de un bootcamp pasò menos de seis meses en la transiciòn profesional, desde comenzar un bootcamp hasta encontrar su primer trabajo.
A continuaciòn, vamos para preguntarle al usuario cuántas puntuaciones le gustarìa ver:
Convertimos el valor que inserta un usuario en un n√∫mero entero. Esto se debe a que la funciòn xrange ()
solo admite n√∫meros enteros.
< / a>
A continuaciòn, iteremos sobre nuestra lista de clasificaciòn utilizando un bucle for . Solo mostraremos el n√∫mero de resultados que el usuario ha solicitado ver en la consola:
Usamos la funciòn xrange ()
para generar un rango de n√∫meros entre 0 y el n√∫mero el usuario insertò. En nuestro bucle for, usamos una instrucciòn print ()
para imprimir la entrada de la tabla de clasificaciòn que se correlaciona con el n√∫mero en la lista xrange ()
que nuestro bucle está viendo.
Imprimimos el valor de "l" más uno junto al nombre de un jugador. Esto nos permite ver su posiciòn. Porque listas están en desviado de cero , agregamos uno a " l & rdquo ;. Esto evita que el primer jugador de nuestra lista esté en la posiciòn " 0 " y asì sucesivamente.
Ejecutemos nuestro còdigo y veamos qué sucede:
Nuestro programa devuelve un error.
Hemos utilizado el còdigo < > funciòn xrange () para generar un rango de n√∫meros. En Python 2, esto serìa válido. Estamos usando Python 3 para ejecutar nuestro programa, lo que significa que no podemos hacer referencia a la funciòn xrange ()
.
Para resolver nuestro error, necesitamos reemplazar xrange ()
con el método range ()
:
Para este caso de uso, ambos xrange ()
y range ()
devolverá el mismo resultado. Ejecutemos nuestro còdigo para ver si funciona:
Nuestro programa muestra con éxito los nombres de los jugadores en el torneo que aparecen en las dos primeras posiciones en la tabla de clasificaciòn.
Una posible soluciòn a este problema es definir una variable llamada xrange al inicio de su programa que es igual a la funciòn range ()
:
Esta no es una buena soluciòn para este error. Esto se debe a que simplemente está evitando el problema de cambiar el nombre de los métodos existentes. Serìa confuso para alguien leer un còdigo base de Python 3 y ver xrange ()
declaraciones, incluso si ha definido xrange como una variable.
El " NameError: name " xra nge y rsquo; no está definido " se genera un error cuando intenta usar el método xrange ()
para crear un rango de n√∫meros en Python 3. Para resolver este error, actualice su còdigo para usar el còdigo range () > método que viene con Python 3.