Python xrange

Dans Python 3, la fonction xrange a été supprimée. Si vous essayez d’utiliser la fonction xrange dans un programme Python 3, vous rencontrerez l’erreur NameError : name ‚Äòxrange‚Äô n’est pas défini erreur.

Dans ce guide, nous allons discuter de ce que signifie cette erreur et pourquoi vous pouvez la rencontrer. Nous allons discuter d’un exemple de cette erreur afin que vous puissiez apprendre comment la corriger dans votre code.

NameError : name ‚Äòxrange‚Äô n’est pas défini

Dans Python 2, la fonction xrange vous permet de créer une plage de nombres. Considérez l’extrait de code suivant :

Notre code renvoie [0, 1, 2], qui correspond à tous les nombres compris entre 0 et 3 (à l’exclusion de 3). La fonction xrange() renvoie une liste de nombres.

Python 3 a supprimé la fonction xrange() au profit d’un nouvelle fonction appelée range(). La fonction range(), comme xrange(), produit une plage de nombres.

Il existe deux différences entre xrange () et range();

  • xrange() et range() ont des noms différents.
  • La fonction xrange() génère une liste de nombres. La fonction range() génère un objet.

Comme la fonction range() génère un objet, vous devez le convertir en une liste si vous souhaitez afficher une liste de numéros. Sinon, ces deux méthodes fonctionnent de la même manière.

Un exemple de scénario

Nous allons écrire un programme qui affiche les premiers joueurs qui sont en haut d’une carte classement du jeu. Pour commencer, déclarons notre classement sous forme de liste :

81 % des participants ont déclaré qu’ils se sentaient plus confiants quant à leurs perspectives d’emploi en technologie après avoir assisté à un bootcamp. Soyez jumelé à un bootcamp aujourd’hui.

Le diplômé moyen d’un bootcamp a passé moins de six mois en transition de carrière, du démarrage d’un bootcamp à la recherche de son premier emploi.

Ensuite, nous y allons pour demander à l’utilisateur combien de scores il souhaite voir :

Nous convertissons la valeur qu’un utilisateur insère en un entier. En effet, la fonction xrange() ne prend en charge que les entiers.

Ensuite, parcourons notre liste de classement à l’aide d’une boucle for. Nous n’afficherons que le nombre de résultats que l’utilisateur a demandé à afficher sur la console :

Nous utilisons la fonction xrange() pour générer une plage de nombres entre 0 et le nombre Dans notre boucle for, nous utilisons une instruction print() pour imprimer l’entrée du classement qui correspond au nombre dans la liste xrange() que notre boucle est en train de regarder.

Nous affichons la valeur de "l" plus un à côté du nom d’un joueur. Cela nous permet de voir sa position. Parce que les listes sont dans désaxé à partir de zéro, nous ajoutons un à "l". Cela empêche le premier joueur de notre liste d’être en position "0" et ainsi de suite.

Exécutons notre code et voyons ce qui se passe :

Notre programme renvoie une erreur.

Nous avons utilisé le xrange() pour générer une plage de nombres. En Python 2, ce serait valide. Nous utilisons Python 3 pour exécuter notre programme, ce qui signifie que nous ne pouvons pas référencer la fonction xrange().

Pour résoudre notre erreur, nous devons remplacer xrange() avec la méthode range() :

Pour ce cas d’utilisation, les deux xrange() et range() renverra le même résultat. Exécutons notre code pour voir si cela fonctionne :

Notre programme affiche avec succès les noms des joueurs du tournoi qui apparaissent dans les deux premières positions du classement.

Redéfinir la méthode xrange()

Une solution potentielle à ce problème est de définir une variable appelée xrange au début de votre programme qui est égal à la fonction range() :

Ce n’est pas une bonne solution à cette erreur. C’est parce que vous évitez simplement le problème de renommer des méthodes existantes. Il serait déroutant pour quelqu’un de lire une base de code Python 3 et de voir Les instructions xrange(), même si vous avez défini xrange en tant que variable.

La meilleure solution est de renommer vos instructions xrange() à range() et apporter les modifications nécessaires pour garantir que votre base de code fonctionne en Python 3.

Conclusion

La "NameError : name ‚Äòxra nge‚Äô n’est pas défini " une erreur est générée lorsque vous essayez d’utiliser la méthode xrange() pour créer une plage de nombres dans Python 3. Pour résoudre cette erreur, mettez à jour votre code pour utiliser la range() méthode fournie avec Python 3.

range() est le remplacement Python 3 de xrange(). Vous avez maintenant le savoir-faire dont vous avez besoin pour résoudre cette erreur comme un pro !

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method