python xrange

Funciones y métodos de Python

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 & lsquo; xrange & rsquo; 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 & lsquo; xrange & rsquo; 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:

 print (xrange (0, 3)) 

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:

 to_view = int (input ( "¿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:

 para l en xrange (0, to_view): print (l + 1, leaderboard [l]) 

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 & ldquo; l & rdquo ;. Esto evita que el primer jugador de nuestra lista esté en la posición & ldquo; 0 & rdquo; y así sucesivamente.

Ejecutemos nuestro código y veamos qué sucede:

 ¿Cuántas partituras te gustaría ver? 2 Traceback (última llamada más reciente): archivo "main.py", línea 5, en & lt; módulo & gt; para l en xrange (0, to_view): NameError: el nombre 'xrange' no está definido 

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 () :

 for l in range (0, to_view): print (l + 1, leaderboard [l]) 

Para este caso de uso, ambos xrange () y range () devolverá el mismo resultado. Ejecutemos nuestro código para ver si funciona:

 ¿Cuántas puntuaciones le gustaría? ¿vista? 2 1 Alex 2 Jonas 

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.





Redefiniendo el método xrange ()

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 () :

 xrange = 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.

La mejor solución es cambiar el nombre de sus xrange () declaraciones a range () y realizar los cambios necesarios para garantizar que su base de código funcione en Python 3.




Conclusión

El & ldquo; NameError: name & lsquo; xra nge y rsquo; no está definido & rdquo; 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.

range () es el reemplazo de Python 3 para xrange () . ¡Ahora tiene los conocimientos necesarios para resolver este error como un profesional!





python xrange: StackOverflow Questions