Python xrange

Python işlevleri ve meth

Python 3'te xrange işlevi kaldırıldı. Bir Python 3 programında xrange işlevini kullanmayı denerseniz, NameError: name ‘xrange’ tanımlanmadı hatası.

Bu kılavuzda, bu hatanın ne anlama geldiğini ve neden karşılaşabileceğinizi tartışacağız. Kodunuzda nasıl düzelteceğinizi öğrenebilmeniz için bu hatanın bir örneğini tartışacağız.




Ad Hatası: ad ‘xrange’ tanımlı değil

Python 2'de, xrange işlevi bir sayı aralığı oluşturmanıza izin verir. Aşağıdaki kod parçacığını göz önünde bulundurun:

print(xrange(0, 3))

Kodumuz, 0 ve 3 (3 hariç) aralığındaki tüm sayılar olan [0, 1, 2] değerini döndürür. xrange() işlevi bir sayı listesi döndürür.

Python 3, xrange() işlevini range() adlı yeni işlevrange() işlevi, xrange() gibi, bir sayı aralığı üretir.

xrange arasında iki fark vardır. () ve range();

  • xrange() ve range() farklı adlara sahiptir.
  • xrange() işlevi bir sayı listesi oluşturur. range() işlevi bir nesne oluşturur.

range() işlevi bir nesne oluşturduğu için, onu nesneye dönüştürmeniz gerekir. bir numara listesi görüntülemek istiyorsanız bir liste. Aksi takdirde, bu iki yöntem aynı şekilde çalışır.




Örnek Senaryo

Bir kartın en üstünde olan ilk birkaç oyuncuyu görüntüleyen bir program yazacağız. oyun afişi. Başlamak için, lider tablomuzu bir liste olarak ilan edelim:

katılımcıların %81'i bir eğitim kampına katıldıktan sonra teknik iş beklentileri konusunda daha emin hissettiklerini belirtti. Bugün bir eğitim kampı ile eşleştirin.

Ortalama bir eğitim kampı mezunu, bir eğitim kampına başlamaktan ilk işini bulmaya kadar, kariyer geçişinde altı aydan daha az zaman harcadı.

Sırada, gidiyoruz. kullanıcıya kaç puan görüntülemek istediğini sormak için:

to_view = int(input( "Kaç puan görüntülemek istiyorsunuz? "))

Kullanıcının girdiği değeri bir tam sayıya dönüştürüyoruz. Bunun nedeni, xrange() işlevinin yalnızca tam sayıları desteklemesidir.


Sonra, bir for döngüsü kullanarak lider tablosu listemizi yineleyelim. kullanıcının konsolda görüntülemeyi istediği sonuçlar:

xrange(0,) için l to_view): print(l + 1, lider panosu[l])

0 ile sayı arasında bir sayı aralığı oluşturmak için xrange() işlevini kullanırız kullanıcı eklendi. for döngümüzde, döngümüzün xrange() listesindeki sayıyla ilişkili olan lider tablosu girişini yazdırmak için bir print() ifadesi kullanırız.

Oyuncunun adının yanına “l” artı bir değerini yazdırıyoruz. Bu, konumlarını görmemizi sağlar. Çünkü listeler sıfırdan indirildi, “l”'a bir ekliyoruz. Bu, listemizdeki ilk oyuncunun “0” ve benzeri.

Kodumuzu çalıştıralım ve ne olduğunu görelim:

Kaç puan görmek istersiniz? 2 Geri izleme (en son arama son): Dosya "main.py", satır 5,  l için xrange(0, to_view): NameError: "xrange" adı tanımlı değil

Programımız bir hata döndürüyor.

xrange() bir sayı aralığı oluşturmak için işlev. Python 2'de bu geçerli olacaktır. Programımızı çalıştırmak için Python 3 kullanıyoruz, bu da xrange() işlevine başvuramayacağımız anlamına geliyor.

Hatamızı çözmek için öğesini değiştirmemiz gerekiyor. range() yöntemiyle xrange():

l in range(0, to_view): print(l + 1, lider panosu[l])

Bu kullanım durumu için, hem xrange() ve range() aynı sonucu döndürür. Çalışıp çalışmadığını görmek için kodumuzu çalıştıralım:

Kaç puan istersiniz görüş? 2 1 Alex 2 Jonas

Programımız, turnuvadaki skor tablosunda ilk iki sırada yer alan oyuncuların isimlerini başarıyla gösteriyor.





xrange() Yöntemini Yeniden Tanımlamak

Bu soruna olası bir çözüm, programınızın başlangıcında xrange adlı bir değişken tanımlamaktır. range() işlevine eşittir:

xrange = range 

Bu, bu hata için iyi bir çözüm değil. Bunun nedeni, yalnızca mevcut yöntemleri yeniden adlandırma sorunundan kaçınmanızdır. Birinin Python 3 kod tabanını okuyup görmesi kafa karıştırıcı olacaktır. xrange() deyimleri, xrange'ı bir değişken olarak tanımlamış olsanız bile.

En iyi çözüm, xrange() deyimlerinizi yeniden adlandırmaktır. range() ve kod tabanınızın Python 3'te çalışmasını sağlamak için gerekli değişiklikleri yapmak.




Sonuç

“NameError: name ‘xra nge’ tanımlı değil” Python 3'te bir sayı aralığı oluşturmak için xrange() yöntemini kullanmaya çalıştığınızda hata oluşur. Bu hatayı çözmek için kodunuzu range() Python 3 ile birlikte gelen yöntem.

range(), xrange() yerine Python 3'ün yerine geçer. Artık bu hatayı bir profesyonel gibi çözmek için ihtiyacınız olan teknik bilgiye sahipsiniz!





Python xrange: StackOverflow Questions