9 NİSAN 2009, PERŞEMBE
Bir dize kontrol Python yüzen dönüştürülebilir
Dizeleri listesini çalıştırır bazı Python kodu var ve mümkünse tamsayı veya kayan noktalı sayılar dönüştürür. Tamsayılar için bu gayet kolaydır
if element.isdigit():
newelement=int(element)
Kayan nokta sayı daha zordur. Şu an partition kullanıyorum('.') dize bölme ve her iki tarafın da bir basamak olduğundan emin olmak için kontrol ediyorum.
partition=element.partition('.')
if (partition[0].isdigit() and partition[1]=='.' and partition[2].isdigit()) or (partition[0]=='' and partition[1]=='.' and partition[2].isdigit()) or (partition[0].isdigit() and partition[1]=='.' and partition[2]==''):
newelement=float(element)
Bu çalışır, ama belli ki bunun için, eğer deyim bir ayı biraz. Düşündüm başka bir çözüm sadece bir try/catch bloğu dönüşüm sarın ve this question açıklandığı gibi başarılı olmadığını görmek için.
Başka bir fikri olan var mı? Bölüm göreli yararları üzerine görüşleri ve yaklaşımları yakalamak/denedin mi?
CEVAP
9 NİSAN 2009, PERŞEMBE
Sadece.. kullanırdım
try:
float(element)
except ValueError:
print "Not a float"
... basit ve işe yarıyor
Başka bir seçenek düzenli bir ifade olurdu:
import re
if re.match("^\d ?\.\d ?$", element) is None:
print "Not float"
Bunu Paylaş:
Nasıl bir dize bir sayı (yüzen) olup o...
Python listesi kontrol öğesi başka bir...
Nasıl bir değişken türü olmadığını kon...
Nasıl Python ile bir dize ASCII olup o...
Python: eğer bir dize bir tamsayı Dışı...