dizeyi zaman damgası python’a dönüştür

Python işlevleri ve meth

Python, yalnızca geçerli bir sayısal değeri kayan nokta değerine dönüştürebilir. Virgül, boşluk veya belirli karakterler içeren bir değeri dönüştürmeye çalışırsanız, “değer hatası: dizeyi kayan noktaya dönüştüremedi” şeklinde bir hatayla karşılaşırsınız. 

Bunda rehberimizde bu hatanın ne anlama geldiğini ve neden oluştuğunu konuşuyoruz. Bunu kodunuzda nasıl düzelteceğinizi görmenize yardımcı olmak için bu hatanın bir örneğini inceliyoruz.




valueerror: string'i float'a dönüştüremedi

Python, float().

Bu yöntem, üzerinde matematiksel bir işlem gerçekleştirmeniz gerekiyorsa kullanışlıdır. bir değer. Bir dizgede matematik yapamazsınız; bir kayan noktada matematik yapabilirsiniz.

float() yöntemi yalnızca dizeler. Bu, şu durumlarda bir değeri dönüştüremeyeceğiniz anlamına gelir:

  • Bir değer boşluk içeriyorsa
  • Bir değer virgül içeriyorsa
  • Bir değer boşluk içeriyorsa
  • Bir değer boşluk içeriyorsa -özel karakterler (yani “inf” özel bir karakterdir, ancak “fd” değildir)

“valueerror: dizeyi kayan karaktere dönüştüremedi” yukarıdaki üç kriterden herhangi birini karşılayamazsanız hata oluşur. Bunun nedeni, Python'un bir değeri, o değer belirli bir şekilde görünmedikçe bir kayan nokta değerine dönüştürememesidir.




Örnek Bir Senaryo

Burada, ABD Dolarını (USD) çeviren bir program yazıyoruz. İngiliz Sterlini'ne (GBP) dönüştürün.

Başlamak için bir kullanıcıdan dönüştürmek istediği dolar değerini girmesini isteyin. pound'a:

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 kullanıcının değerini dönüştürüyoruz. daha sonra değeri kullanarak matematiksel bir hesaplama yapabilmemiz için bir kayan noktalı sayıya ekler.


Sonra, USD için GBP döviz kurunu belirledik. Şu anda 1 USD 0,76 GBP değerinde:

exchange_rate = 0.76

Bu iki değerle USD değerimizin GBP cinsinden ne kadar olduğunu hesaplayabiliriz. Bunu yapmak için “dollar_value” ile “exchange_rate” ile çarpın:

final_value = dolar_value * exchange_rate print(" {} USD eşittir {} GBP".format(dollar_value, final_value))

Bir .format kullandık () deyimi kullanıcıya USD'nin GBP cinsinden değerinin ne kadar olduğunu bildiren bir mesaj oluşturmak için. Kodumuzu çalıştıralım ve ne olduğunu görelim:

Aldığınız değeri girin ant GBP'ye dönüştürmek için: 23 23,0 USD 17,48 GBP'ye eşittir

Kodumuz başarıyla çalışıyor. Kodumuza doğru biçimlendirilmemiş bir sayı eklemeye çalışırsak ne olacağını görelim:

GBP'ye dönüştürmek istediğiniz değeri girin: 2.300 Geri İzleme (en son yapılan arama): Dosya "main.py", satır 1,  dolar_değeri = float(input("GBP'ye dönüştürmek istediğiniz değeri girin: ")) ValueError: dizeyi float'a dönüştüremedi: '2,300'

Kodumuz bir hata döndürüyor.< /p>


Çözüm

Programımıza geçerli bir kayan nokta değeri eklediğimizde kodumuz çalışır. Bunu her kullanıcının yapacağına güvenemeyiz.

Binlerce (2,300) bir değer girmeye çalıştığımızda, bir virgül ekledik. Bu, kayan nokta sayımızı geçersiz kılmıştır.

Bu sorunu çözmek için bir “try…except” blok:

deneyin: dolar_değeri = float(input("GBP'ye dönüştürmek istediğiniz değeri girin: " )) exchange_rate = 0.76 final_value = dolar_value * exchange_rate print("{} USD, {} GBP'ye eşittir".format(dolar_value, final_value)) hariç: print("Lütfen geçerli bir sayı girin. Para birimleri virgül, boşluk veya karakterler."

Programımız kodu “try” engellemek. Programımız başarısız olursa, “hariç” blok çalıştırılacak.


Kodumuzu çalıştırın ve geçersiz bir kayan nokta değeri girin.

Kodumuz şunu döndürür:

GBP'ye dönüştürmek istediğiniz değeri girin: 2.300 Lütfen geçerli bir sayı girin. Para birimleri virgül, boşluk veya karakter içeremez.

Let’ s kodumuzu geçerli bir değerle yürütün:

GBP'ye dönüştürmek istediğiniz değeri girin: 23 23,0 USD 17,48 GBP'ye eşittir

Her iki durumda da kodumuz başarılı bir şekilde çalışmaktadır.Programımıza geçersiz bir değer eklediğimiz ilk durumda, “except&rdquo ; blok çalıştırıldı. İkinci durumda, programımız 23 USD'nin GBP cinsinden ne kadar olduğunu hesapladı.




Sonuç

“valueerror: st'yi dönüştüremedi. yüzmek için halka” kayan noktalı sayı olarak biçimlendirilmemiş bir dizgiyi kayan noktalı sayıya dönüştürmeye çalıştığınızda hata oluşur.

Bu hatayı, kodunuzun devam etmemesini sağlayan bir işleyici ekleyerek çözebilirsiniz. kullanıcı geçersiz bir değer girerse çalışır. Alternatif olarak, bir sayının geçerli olduğundan emin olmak için bir sayıyı float()'a dönüştürmeden önce ek girdi doğrulaması ekleyebilirsiniz.

Artık düzeltmeye hazırsınız. kodunuzdaki bu yaygın Python hatası.





dizeyi zaman damgası python'a dönüştür: StackOverflow Questions

Tutorials