str nesnesi çağrılabilir python değil

Deƒüi≈ükenleri adlandƒ±rƒ±rken hatalar kolayca yapƒ±labilir. En yaygƒ±n hatalardan biri, bir deƒüi≈ükeni "str‚" olarak adlandƒ±rmaktƒ±r. Programƒ±nƒ±zda aynƒ± ada sahip Python y√∂ntemini kullanmaya çalƒ±≈üƒ±rsanƒ±z, "typeerror: ‚Äòstr‚Äô nesne çaƒürƒ±labilir deƒüil‚" d√∂ndurulur.

Bu kƒ±lavuzda Python hatasƒ±nƒ±n ne anlama geldiƒüi ve neden ortaya 烱ktƒ±ƒüƒ± hakkƒ±nda konu≈üuyoruz. Nasƒ±l ç√∂zeceƒüinizi √∂ƒürenmeniz için bu hatanƒ±n iki √∂rneƒüini eylem halinde inceliyoruz.

Sorun: typeerror: ‚Äòstr‚Äô nesne çaƒürƒ±labilir deƒüil

Hata mesajƒ±mƒ±z bir TypeError. Bu bize, veri turu s√∂z konusu i≈ülemi desteklemeyen bir deƒüer uzerinde bir i≈ülem yurutmeye çalƒ±≈ütƒ±ƒüƒ±mƒ±zƒ± s√∂yluyor.

Hata mesajımızın geri kalanına bir göz atın:

Bir < çaƒüƒ±rmaya çalƒ±≈ütƒ±ƒüƒ±nƒ±zda a href="/python-string-methods/">string bir i≈ülevde yaptƒ±ƒüƒ±nƒ±z gibi bir hata d√∂ndurulur. Bunun nedeni, dizelerin i≈ülev olmamasƒ±dƒ±r. Bir i≈ülevi çaƒüƒ±rmak için, bir i≈ülev adƒ±nƒ±n sonuna () eklersiniz.

Bu hata genellikle "str‚" adlƒ± bir deƒüi≈üken atadƒ±ƒüƒ±nƒ±zda olu≈üur. ve sonra str() i≈ülevini kullanmayƒ± deneyin. Python "str‚" str() i≈ülevini programƒ±nƒ±zda kullanamazsƒ±nƒ±z.

Bu hatanın oluştuğu iki örnek senaryoya bakalım.< /p>

√ñrnek Senaryo: "str‚"

Adlı Değişken Bildirmek

Bir çocuƒüun 18 ya≈üƒ±na kadar kaç yƒ±lƒ± kaldƒ±ƒüƒ±nƒ± hesaplayan bir program yazƒ±yoruz. Daha sonra bu deƒüeri konsola yazdƒ±rƒ±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. Bugun 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ƒ±.

Hadi koleksiyon yaparak başlayalım. bir input() ifadesi kullanarak gencin mevcut yaşı:

Ardƒ±ndan, bir gencin 18 ya≈üƒ±na kadar kaç yƒ±l kaldƒ±ƒüƒ±nƒ± hesaplƒ±yoruz. bunu, bir kullanƒ±cƒ±nƒ±n programƒ±mƒ±za verdiƒüi deƒüeri 18’den 烱kararak yapƒ±n:

Ya≈ü tamsayƒ±sƒ±nƒ± d√∂nu≈üturmek için int() y√∂ntemini kullanƒ±yoruz. Bu, kullanƒ±cƒ±nƒ±n ya≈üƒ±nƒ± 18’den 烱karmamƒ±zƒ± saƒülar.

Ardƒ±ndan bu deƒüeri stringe çevirip konsola yazdƒ±rƒ±yoruz.Deƒüeri stringe çeviriyoruz çunku onu string olarak birle≈ütirmemiz gerekiyor. bunu yapƒ±n, tum deƒüerler bir dize olarak biçimlendirilmelidir.

"years_left‚" deƒüerini d√∂nu≈üturelim ve konsola yazdƒ±ralƒ±m:

Bu kod, bir kullanƒ±cƒ±nƒ±n 18 ya≈üƒ±na kadar kaç yƒ±l kaldƒ±ƒüƒ±nƒ± bize bildiren bir mesaj yazdƒ±rƒ±r. Kodumuzu çalƒ±≈ütƒ±rƒ±n ve ne olduƒüunu g√∂run:

Kodumuz bir hata d√∂nduruyor. "years_left‚" deƒüerini d√∂nu≈üturmek için str() y√∂ntemini kullanmayƒ± denedik. Programƒ±mƒ±zda daha √∂nce, "str‚" adƒ±nda bir deƒüi≈üken tanƒ±mlamƒ±≈ütƒ±k. Python "str‚" programƒ±mƒ±zda bir dizgedir, fonksiyon deƒüil.

Bu hatayƒ± ç√∂zmek için "str‚" deƒüi≈ükenini yeniden adlandƒ±rƒ±yoruz. to "age‚":

Deƒüi≈ükenimizi yeniden adlandƒ±rdƒ±ƒüƒ±mƒ±z için Python kullanacaktƒ±r str() i≈ülevini çaƒüƒ±rdƒ±ƒüƒ±mƒ±zda. Artƒ±k bu adƒ± i≈ügal eden bir deƒüi≈üken yok. Kodumuzu tekrar çalƒ±≈ütƒ±ralƒ±m:

Kodumuz, bir gencin 18 ya≈üƒ±na kadar kaç yƒ±l kaldƒ±ƒüƒ±nƒ± ba≈üarƒ±yla hesaplar.

√ñrnek Senaryo: String % Kullanarak Biçimlendirme

Bu hata aynƒ± zamanda dize biçimlendirme’deki bir hatadan da kaynaklanƒ±r.

Son programƒ±mƒ±za birkaç yeni √∂zellik ekleyelim. ƒ∞lk olarak, bir kullanƒ±cƒ±ya adƒ±nƒ± soruyoruz. ƒ∞kinci olarak, % biçimlendirme s√∂zdizimini kullanarak bir kullanƒ±cƒ±ya 18 ya≈üƒ±na kadar kaç yƒ±l kaldƒ±ƒüƒ±nƒ± s√∂yleyen mesajƒ± olu≈üturacaƒüƒ±z.

Bir kullanıcıya adını sorarak başlayın:

Sonra, % string biçimlendirme s√∂zdizimini kullanmak için print() ifademizi revize ediyoruz. Bunu yapƒ±yoruz çunku % s√∂zdizimini bir dizgede birden çok deƒüer biçimlendirirken okumak daha kolaydƒ±r.Bir kullanƒ±cƒ±ya g√∂stereceƒüimiz mesajƒ± biçimlendirmek için kullandƒ±ƒüƒ±mƒ±z kod:

Son programımız şuna benzer:

Kodumuz, dize turu %s sembolunu "name‚" ve sƒ±rasƒ±yla "ya≈ü". Kodumuzu çalƒ±≈ütƒ±ralƒ±m ve ne olduƒüunu g√∂relim:

Kodumuz bir hata veriyor çunku dizgimizi ve dizgimize eklemek istediƒüimiz deƒüerleri ayƒ±rmak için % operat√∂runu kullanmayƒ± unuttuk.

Kodumuz "%s’yi çaƒüƒ±rmaya çalƒ±≈ütƒ±ƒüƒ±mƒ±zƒ± du≈üunuyor, sizde %s var 18 ya≈üƒ±na gelmene yƒ±llar kaldƒ±.‚" bir i≈ülev olarak, çunku dizeden sonra parantez geliyor.

"Python.Engineering hayatıma en ihtiyacım olduğu anda girdi ve hızlı bir şekilde bir bootcamp ile eşleşmeme yardımcı oldu. Mezun olduktan iki ay sonra hayalimi buldum hayattaki değerlerim ve hedeflerim ile uyumlu bir iş!"

Venus, Rockbot’ta Yazƒ±lƒ±m Muhendisi

Bu hatayƒ± ç√∂zmek için ≈üunu ekliyoruz: "%s, 18 ya≈üƒ±na gelene kadar %s yƒ±lƒ±nƒ±z kaldƒ±‚" ve (isim, ya≈ü) kodumuzda:



Sonuç

"typeerror: ‚Äòstr‚Äô nesne çaƒürƒ±labilir deƒüil‚" bir dizeyi i≈ülev olarak çaƒüƒ±rmaya çalƒ±≈ütƒ±ƒüƒ±nƒ±zda hata olu≈üur. Bu hatayƒ± ç√∂zmek için "str‚" kullanmadƒ±ƒüƒ±nƒ±zdan emin olun. deƒüi≈üken adƒ± olarak.

Bu sorunu ç√∂zmezse, dizeleri biçimlendirmek için % operat√∂runu kullanƒ±p kullanmadƒ±ƒüƒ±nƒ±zƒ± kontrol edin. Bir dize ile bir dizeye eklemek istediƒüiniz deƒüerler arasƒ±nda bir % i≈üareti g√∂runmelidir.

Artƒ±k bu yaygƒ±n Python hatasƒ±nƒ± bir profesyonel gibi ç√∂zmeye hazƒ±rsƒ±nƒ±z!

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