def virgül_tanıma(sayı):
"""
>>> virgül_tanıma(1)
1
>>> virgül_tanıma(1.0)
1
>>> virgül_tanıma(1.1)
1.1
>>> virgül_tanıma(1.123456789)
1.12
>>> type(virgül_tanıma(1.123456789))
>>> virgül_tanıma(1.02)
1.02
>>> virgül_tanıma(1.00)
1
"""
try:
tanı = str(sayı).split(".")#sayımızı karakter dizisine
# dönüştürüp split vasıtasıyla noktadan bölüyoruz.
# bildiğiniz üzere split sadece karakter dizileri üzerinde
#işlem yapabiliyor. sonrada tanı adlı değişkene atıyoruz.
#tanı adlı değiken iki elemalı (ki ikiside karakter dizisi)
#bir liste döndürüyor.
if tanı[1] == "0": #tanının virgülden sonraki kısmının sıfır
#olup olmadığına bakıyoruz . eğer sıfır'sa (0) virgülsüz
# bir sayı döndürüyoruz. tanı adlı değişkenimiz
#bir karakter dizisi (str) olduğu için sıfır'ı ("0") da karakter
#dizisine dönüştürüyoruz.
return round(sayı)
else: # sayımızın virgülden sonrası sıfır değilse işler
return round(sayı, 2) #sayının fazlalık kısmını
#bu şekilde kırpmış oluruz. fazla virgüllü sayılar
#özellikle son kullanıcı için pek te iştah kabartıcı
#bulunmayabilir. ayrıca para birimlerinde de (kuruş,
#cent gibi) genelde (virgülden sonra ki kısım kırık
#(demirlikler) para birimlerini temsil eder) iki birimden
# oluşur ben süt
# hesaplayıcı için tasarladığım için virgülden sonra
#iki birimin gösterilmesini tercih ettim tabi bu sizin
#tercihinize kalmış.
except IndexError: #eğer sayımız kayan noktalı bir
#sayı değilde bir tam sayı ise modülümüzün çökmesini
#önleyip aynı sayıyı döndürüyoruz.
return sayı
25 Şubat 2015 Çarşamba
virgüllü sayı tanıma
Kaydol:
Kayıt Yorumları (Atom)
Hiç yorum yok:
Yorum Gönder