Python dikt uzunluğu

Python işlevleri ve meth

Yalnızca dizeler ve listeler gibi yinelenebilir nesnelerin bir uzunluğu vardır. Bir sayının uzunluğunu hesaplamaya çalışırsanız, “TypeError: ‘int’ türünde nesneyle karşılaşırsınız. len() yok” error.

Bu kılavuzda, bu hatanın ne anlama geldiğini ve neden ortaya çıktığını tartışıyoruz. Sorunu nasıl çözeceğimizi öğrenmek için bu hatayı içeren bir kod parçacığı örneğini inceleyeceğiz.




TypeError: ‘int’ len() yok

len() yöntemi bir nesnenin uzunluğunu döndürür. Şu programı düşünün:

browsers = ["Microsoft Edge", "Mozilla Firefox", " Google Chrome") print(len(browsers))

Programımız “3” döndürür. Bu, Python listemizin uzunluğudur. “tarayıcıların” nesne birden çok değer içerdiğinden hesaplanabilir.

Dizeler, demetler ve listelerin tümü, değer dizileri oldukları için len() yöntemiyle çalışır. Tamsayı değerlerin uzunluğu yoktur çünkü bunlar yalnızca bir değeri temsil eder. Tamsayılar, “uzunluğu” diğer yinelenebilir nesneler gibi.




Örnek Senaryo

Bir elektronik mağazasındaki kaç müşterinin bir sadakat kulübü programının parçası olduğunu hesaplayan bir program yazacağız. Her birinin müşterilerimiz hakkında bilgi depoladığı bir sözlük listesiyle başlayacağız:

customers = [ { "isim": "Lesley Jones", "sadakat": Doğru }, { "ad": "Benjamin Logan", "sadakat": Doğru }, { "ad": "Hannah Mason", "sadakat": Yanlış } ]

Müşteri listemiz üç sözlük içerir. Ardından, sadakat kulübü üyesi olan müşterilerin sayısını hesaplamak için bir for döngüsü kullanın:

number_of_loyalty = 0 müşterilerde c için: if c["loyalty"] == True: number_of_loyalty += 1

bir değişken tanımladık “number_of_loyalty” olarak adlandırılır. Bunu, sadakat kulübünde kaç müşterinin olduğunu takip etmek için kullanıyoruz.

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şin.

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ı.

Bir müşterinin “sadakat” değerinin olup olmadığını değerlendirerek bir sadakat kulübü üyesi; her sözlükte True değerine eşittir.

Sonra, konsola kaç müşterinin sadakat üyesi olduğunu söyleyen bir mesaj yazdırın:

print("Mağazadaki {} müşteriden {} tanesi sadakat kulübü üyesidir.".format(len(müşteriler), len(number_of_loyalty)) )

.format() ifadesi, dizimize belirli konumlarda değerler eklememize izin verir. Bu durumda, dizimize iki değer ekliyoruz: değerlendirilen müşteri sayısı ve sadakat kulübünde kaç müşteri var.

Kodumuzu çalıştırıp, olup olmadığını görelim. çalışır:

Geri izleme (en son çağrı son): Dosya "main.py", satır 13 ,  print("Mağazadaki {} müşteriden {} tanesi sadakat kulübü üyesi.".format(len(müşteriler), len(number_of_loyalty))) TypeError: 'int' türündeki nesnenin len() yok 

Kodumuz 13. satırda çalışmayı durdurur. Bu, programımızın son satırıdır.




Çözüm

Hata mesajı bize şunu söylüyor: o yöntemi desteklemeyen bir nesne üzerinde bir yöntem kullanmayı denediyseniz. Bir tamsayı değerinin uzunluğunu hesaplamaya çalıştık.

Baskı ifademizde, programımızdan “number_of_loyalty” değer:

Bu gereksiz çünkü “number_of_loyalty” kaç tane sadakat kulübü üyesi olduğunu kendisi takip ediyor. Bu hatayı düzeltmek için, len() öğesini “number_of_loyalty” çevresinden kaldırabiliriz. depoladığı tamsayı değerini görebilmemiz için değer:

print("Out of the {} mağazadaki müşteriler, {} tanesi sadakat kulübü üyesi.".format(len(customers), number_of_loyalty))

Yeniden gözden geçirilmiş programımızı çalıştıralım:

Mağazadaki 3 müşteriden 2'si sadakat kulübü üyesidir.

Programımız, mağazadaki üç müşteriden ikisinin sadakat kulübü üyesi olduğunu hesaplıyor. Bu beklediğimiz bir çıktıydı. İlk listemize bakarsak, hem “Lesley Jones” ve “Benjamin Logan” bağlılık kartı üyeleridir.





Sonuç

Bir tamsayı değerinin uzunluğunu bulmaya çalıştığınızda ‘int’ türündeki “TypeError: nesnesinin len()” hatası oluşur. bu sorunu düzeltin, programınızdaki herhangi bir tamsayı değerinden len() yöntemini kaldırın.

Artık bu yaygın Python hatasını bir profesyonel gibi düzeltmek için ihtiyacınız olan bilgiye sahipsiniz!





Python dikt uzunluğu: StackOverflow Questions

Tutorials