Python int nesnesi abone olunamaz

Python işlevleri ve meth

Python içindeki bazı nesneler abone olabilir. Bu, diğer nesneleri içerebilecekleri veya içerebilecekleri anlamına gelir. Tamsayılar, indislenebilir bir nesne değildir. Tam sayıları saklamak için kullanılırlar. Bir tamsayıya abone olunabilir bir nesne gibi davranırsanız, bir hata ortaya çıkar.

Bu kılavuzda, “typeerror: ‘int’ nesne abone olunamaz” hata ve neden yükseltildi. Bunu kodunuzda nasıl çözebileceğinizi göstermek için bu sorunla ilgili bir kod pasajını inceleyeceğiz. Haydi başlayalım!




Sorun: typeerror: ‘int’ nesne abone olunamaz

Hata mesajımıza bir göz atarak başlayacağız:

typeerror: 'int' nesnesi abone olunamaz

Hata mesajımızın ilk kısmı TypeError, hatamızın türünü belirtir. TypeError, bu işlemi desteklemeyen bir değer üzerinde bir işlem gerçekleştirmeye çalıştığınızda ortaya çıkan bir hatadır. Örneğin, bir dize ve bir tamsayıyı birleştirmek bir TypeError oluşturur.

Mesajımızın ikinci kısmı bize neden hakkında bilgi verir.

Bu mesaj şunu anlatıyor bir tam sayı olan bir tamsayı, abone olunabilir bir nesne gibi ele aldığımızı bize bildiriyoruz. Tamsayılar, indislenebilir nesneler değildir. Yalnızca dizeler, listeler, tüpler ve dictionary, abone olunabilir.

Let’ Bir listeden bir öğeye erişmek için indekslemeyi kullanmayı denediğinizi söylüyorlar:

email_providers = ["Gmail", "Outlook", "ProtonMail"] print(email_providers[2])

Bu kod şunu döndürür: ProtonMail. Listeler abone olabilir, bu da bir listeden bir değer almak için indekslemeyi kullanabileceğiniz anlamına gelir.

Katılımcıların %81'i bir eğitim kampına katıldıktan sonra teknik iş beklentileri konusunda kendilerini daha güvende 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 az zaman harcadı.

Aynı söz dizimini kullanamazsınız. bir kayan nokta veya bir tamsayı gibi abone olunamayan bir değerde.




Örnek Senaryo

Kullanıcıya bir sonraki tarihin ne olacağını soran bir program yazacağız. tatil başlar ve her değeri ayrı bir satıra yazdırır. Bu programda çözebileceğimiz bir hata olacak.


Ana programımızı yazarak başlayalım:

tatil = int(input("Tatiliniz ne zaman başlıyor? (mmddyyyy) ")) ay = tatil[0:2] gün = tatil[2:4] yıl = tatil[4:8] print("Ay:" , ay) print("Gün:", gün) print("Yıl:", yıl)

Bu program, bir kullanıcıdan bir input() deyimi. Ardından, kullanıcının belirttiği ay, gün ve yıl değerlerini almak için dilimleme kullanırız. Bu değerler değişkenlerde saklanır.< br>

Ardından, bu değişkenlerin değerlerini konsola yazdırıyoruz.Her değere, tarihin o değerin karşılık geldiği kısmını belirten bir etiket verilir.

< p>Kodumuzu çalıştıralım:

İzleme (en son arama son): Dosya "main.py", satır 3,  ay = tatil[0:1] TypeError: 'int' nesnesi abone olunamaz

Bu hatayı düzeltelim.

“ tatil” bir tamsayıya dönüştürülür. Bu, dilimleme veya indeksleme kullanarak ona erişemeyeceğimiz anlamına gelir. Tamsayılar dizeler gibi dizine eklenmez.

Bu sorunu çözmek için kodumuzdan int() ifadesini kaldırabiliriz. input() ifadesi bir dize değeri döndürür. Kodumuzu kullanarak bu dize değerini bölebiliriz.

input() ifademizi gözden geçirelim:

tatil = input("Tatiliniz ne zaman başlıyor? (mmddyyyy) ")

Şimdi deneyelim kodumuzu çalıştırın:

Tatiliniz ne zaman başlıyor? (mmddyyyy) 02042021 Ay: 02 Gün: 04 Yıl: 2021

Kodumuz başarıyla çalışıyor! Kodumuz bir int() ifadesi içermediğinden artık bir tamsayıyı dilimlemeye çalışmıyoruz. Bunun yerine, “tatil” string olarak saklanır. Bu dize, dilimleme sözdizimi kullanılarak dilimlenir.




Sonuç

“typeerror: ‘int’ nesne abone olunamaz” bir tamsayıya liste veya sözlük gibi abone olunabilir bir nesneymiş gibi erişmeye çalıştığınızda hata oluşur.


Bu sorunu çözmek için, bir tamsayıdaki değerlere erişmek için dilimleme veya indeksleme kullanmadığınızdan emin olun.Dilimleme gibi yalnızca abone olunabilir nesnelerde kullanılabilen bir işlem yapmanız gerekiyorsa ya da indeksleme için, önce tamsayınızı bir dizgeye ya da listeye çevirmelisiniz.

Artık bu Python Bir uzman gibi TypeError!





Python int nesnesi abone olunamaz: StackOverflow Questions

Tutorials