Python t
base64 Python module |
code Python module |
COM PHP module |
decimal Python module |
dis Python module |
Ev PHP module |
exp |
http Python module |
io Python module |
JavaScript |
math Python module |
numbers Python module |
ones |
os Python module |
PS PHP module |
Python functions |
re Python module |
StackOverflow |
string Python module |
Strings PHP module |
types Python module
Michael Zippo
18.11.2021
Yinelenen bir dizi olu≈üturmak için dizeler tamsayƒ±larla çarpƒ±labilirken, dizeler kayan sayƒ±larla çarpƒ±lamaz. Aksi takdirde, Python bir hata d√∂ndurur.
Bu makalede, "typeerror: can t sekansƒ± int olmayan ‚Äòfloat‚Äôrdquo; hata ve neden yukseltildi. √á√∂zebilmemiz için bu hatanƒ±n mevcut olduƒüu bir √∂rnek senaryo uzerinde yuruyeceƒüiz.
typeerror: sekansı ‘float’
turunde int olmayanlarla çarpamaz
Hata mesajımıza bir göz atalım ve bize ne söylediğini görelim:
Hatamƒ±z bir TypeError. Bu, veri turu bu i≈ülemi desteklemeyen bir deƒüer uzerinde bir i≈ülem gerçekle≈ütirmeye çalƒ±≈ütƒ±ƒüƒ±mƒ±z anlamƒ±na gelir. √ñrneƒüin, bir tamsayƒ± ile bir dizeyi birle≈ütirmeye çalƒ±≈üƒ±rsanƒ±z, bir tur hatasƒ± ortaya 烱kar.
Hata bize, dize, bir kayan noktalƒ± sayƒ± ile. Bu Python’da desteklenmez.
Python’da iki tur sayƒ± vardƒ±r: tam sayƒ±lar ve kayan noktalƒ± sayƒ±lar. Tam sayƒ±lar tam sayƒ±lardƒ±r, oysa kayan nokta sayƒ±larƒ± ondalƒ±k sayƒ±lardƒ±r.
Dizeler tam sayƒ±larla çarpƒ±labilir. ≈ûu √∂rneƒüi du≈üunun:
Kodumuz ≈üunu d√∂ndurur: SconeSconeScone. Bir dizeyi bir tamsayƒ± ile çarptƒ±ƒüƒ±nƒ±zda, o dizenin yinelenen bir dizisini olu≈üturur.
%81 Katılımcıların yuzdesi, 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ş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ƒ±.
Dizeler kayan yazƒ±yla çarpƒ±lamaz. nokta numaralarƒ±. "scone‚" 3.3 ile dize, Python ne yapardƒ±? Bir dizenin .3’une sahip olamazsƒ±nƒ±z. Bu nedenle, bir hata d√∂ndurulur.
Örnek Senaryo
Bu hata genellikle input( ile çalƒ±≈üƒ±rken bulunur. ) ifadeler. Bir maƒüazadan yapƒ±lan alƒ±≈üveri≈üte %5 indirim hesaplayan bir programa g√∂z atalƒ±m.
Mu≈üterinin bir satƒ±n alma i≈ülemi için ne kadar harcadƒ±ƒüƒ±nƒ± depolayan, deƒüer adƒ±nda bir deƒüi≈üken ilan ettik. Bu deƒüer, input() y√∂ntemi kullanƒ±larak kullanƒ±cƒ±dan toplanƒ±r.
Ardƒ±ndan, indirim adƒ±nda bir deƒüi≈üken tanƒ±mladƒ±k.Bu, alƒ±≈üveri≈ülere uygulayacaƒüƒ±mƒ±z %5 indirimi ondalƒ±k sayƒ± olarak saklar.Sonra yuzde indirimini " value‚" ve "indirim‚" birlikte. Daha sonra bu sayƒ±yƒ± urunun toplam maliyetinden 烱karƒ±rƒ±z.
round() i≈ülevini kullanƒ±rƒ±z. "final_cost‚" deƒüerini iki ondalƒ±k basamaƒüa yuvarlamak için bir y√∂ntem. Ardƒ±ndan, bu deƒüeri konsola yazdƒ±rƒ±rƒ±z.
Kodumuzu çalƒ±≈ütƒ±rmayƒ± deneyelim: ile çarpƒ±lamaz
Ah hayır. Bir hata dönduruldu. Gelin bu hatayı duzeltelim.
"typeerror: hatasƒ±, diziyi ‚Äòfloat‚Äôrdquo; turunde int olmayanlarla çarpamaz. bir dizge ve bir kayan noktalƒ± sayƒ±nƒ±n birlikte çarpƒ±lmasƒ±ndan kaynaklanƒ±r.
Bu hata √∂nceki programƒ±mƒ±zda girdi() bir dizge d√∂ndurduƒüu için olu≈ütu. Bu, programƒ±mƒ±za bir sayƒ± eklesek bile, bunun bir dize olarak saklanacaƒüƒ± anlamƒ±na gelir.
Bu sorunu ç√∂zmek için, kullanƒ±cƒ±nƒ±n programa eklediƒüi deƒüeri kayan bir deƒüere d√∂nu≈üturebiliriz. nokta numarasƒ±. Bunu float() y√∂ntemini kullanarak yapabiliriz:
float() y√∂ntemi, input() y√∂ntemiyle çevrilidir. float() y√∂ntemi, input() tarafƒ±ndan d√∂ndurulen dize deƒüerini kayan noktalƒ± bir sayƒ±ya d√∂nu≈üturur. Bu, "deƒüeri‚" ve "indirim‚" çunku ikisi de sayƒ±dƒ±r.
Kodumuzu yeniden çalƒ±≈ütƒ±rmayƒ± deneyelim:
Kodumuz çalƒ±≈üƒ±yor! Programƒ±mƒ±z bize 12,99 ABD dolarƒ± deƒüerindeki bir satƒ±n alma deƒüerindeki %5’lik bir indirimin nihai urunun maliyetini 12,34 ABD dolarƒ± yaptƒ±ƒüƒ±nƒ± s√∂yluyor.
Dizeler, kayan nokta sayƒ±larƒ±yla çarpƒ±lamaz. Bunun nedeni, dizeleri tamsayƒ± sayƒ±larla çarpmanƒ±n, dizenin tekrar eden bir dizisini olu≈üturmasƒ±dƒ±r. bir dizeyi ondalƒ±k deƒüerlerle çarparken.
"typeerror: dizisini ‚Äòfloat‚Äôrdquo; turunde int olmayan bir hatayla çarpamayacaƒüƒ±nƒ± ç√∂zmek için, tum dize deƒüerlerinin bir hesaplamanƒ±n parçasƒ± olarak kullanƒ±lƒ±yorlarsa, kayan noktalƒ± bir sayƒ±ya d√∂nu≈üturulurler.