Çözüldü Python kilo endeksi hesaplama programı sürekli zayıf buluyor

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Graiden

Hectopat
Katılım
28 Mayıs 2019
Mesajlar
3.048
Çözümler
8
Kod:
#18, 5 kg/m.'nin altında olanlar: Zayıf
#18.5 – 24, 9 kg/m. arasında olanlar: Normal kilolu
#25 – 29, 9 kg/m. arasında olanlar: Fazla kilolu
#30 – 39, 9 kg/m. arasında olanlar: Obez
#40 kg/m.'nin üzerinde olanlar: İleri derecede obez (morbid obez), olarak görülür.
kullanıcı_boy = float(input("Kilonuzu giriniz: "))
kullanıcı_kilo = float(input("Boyunuzu giriniz: "))
kilo_çarpma = kullanıcı_boy*kullanıcı_boy
hesaplama =  100/kilo_çarpma
if hesaplama<=18.5:
    print("Zayıfsınız.")
elif hesaplama>=18.5 and hesaplama<=24.9 or hesaplama==18.5:
    print("Normalsiniz.")
elif hesaplama>=25 and hesaplama<=29.9:
    print("Fazla kilolusunuz, sağlığınız için kilo verin.")
elif hesaplama>=30 and hesaplama<=39.9:
    print("Obezitesiniz, sağlığınız için kilo verin.")
elif hesaplama>=40:
    print("İleri obezitesiniz.")

Ne tür değerler girersem gireyim zayıfsınız diyor, bunun sebebi nedir?
 
Çözüm
Okudum ama bir hata göremedim.
Değişik bir şey kadar tekrar okuyun.

Bunun dışında kilo bilgisini kullanmıyorsunuz bile. Formülü doğru bildiğinizden emin olun. Kullanıcıya birim belirtmenizde fayda var.

Genel programlama standartlarından bahsetmiyorum bile.

Kod:
#18, 5 kg/m.'nin altında olanlar: Zayıf
#18.5 – 24, 9 kg/m. arasında olanlar: Normal kilolu
#25 – 29, 9 kg/m. arasında olanlar: Fazla kilolu
#30 – 39, 9 kg/m. arasında olanlar: Obez
#40 kg/m.'nin üzerinde olanlar: İleri derecede obez (morbid obez), olarak görülür.

kullanıcı_boy = float(input("Boyunuzu giriniz (m): "))
kullanıcı_kilo = float(input("Kilonuzu giriniz (kg): "))

boy_çarpma = kullanıcı_boy * kullanıcı_boy
hesaplama = kullanıcı_kilo / boy_çarpma

if hesaplama <= 18.5:
    print("Zayıfsınız.")
elif hesaplama >= 18.5 and hesaplama<=24.9 or hesaplama==18.5:
    print("Normalsiniz.")
elif hesaplama >= 25 and hesaplama<=29.9:
    print("Fazla kilolusunuz, sağlığınız için kilo verin.")
elif hesaplama >= 30 and hesaplama<=39.9:
    print("Obezitesiniz, sağlığınız için kilo verin.")
elif hesaplama >= 40:
    print("İleri obezitesiniz.")
Okudum ama bir hata göremedim.
Değişik bir şey kadar tekrar okuyun.

Bunun dışında kilo bilgisini kullanmıyorsunuz bile. Formülü doğru bildiğinizden emin olun. Kullanıcıya birim belirtmenizde fayda var.

Genel programlama standartlarından bahsetmiyorum bile.

Kod:
#18, 5 kg/m.'nin altında olanlar: Zayıf
#18.5 – 24, 9 kg/m. arasında olanlar: Normal kilolu
#25 – 29, 9 kg/m. arasında olanlar: Fazla kilolu
#30 – 39, 9 kg/m. arasında olanlar: Obez
#40 kg/m.'nin üzerinde olanlar: İleri derecede obez (morbid obez), olarak görülür.

kullanıcı_boy = float(input("Boyunuzu giriniz (m): "))
kullanıcı_kilo = float(input("Kilonuzu giriniz (kg): "))

boy_çarpma = kullanıcı_boy * kullanıcı_boy
hesaplama = kullanıcı_kilo / boy_çarpma

if hesaplama <= 18.5:
    print("Zayıfsınız.")
elif hesaplama >= 18.5 and hesaplama<=24.9 or hesaplama==18.5:
    print("Normalsiniz.")
elif hesaplama >= 25 and hesaplama<=29.9:
    print("Fazla kilolusunuz, sağlığınız için kilo verin.")
elif hesaplama >= 30 and hesaplama<=39.9:
    print("Obezitesiniz, sağlığınız için kilo verin.")
elif hesaplama >= 40:
    print("İleri obezitesiniz.")
 
Çözüm
Boy-kilo endeksi: Vücut ağırlığınız, boyunuzun karesine bölünerek hesaplanır. 6. ve 7. satırda mantık hatası var. Bu arada hiçbir zaman Türkçe karakterler kullanmayın. Bir de şu anda hesaplamanız boyun metre cinsine göre odaklı gözüküyor. Eğer öyle yapacaksanız bunu kullanıcıya belirtmeniz ve boyu girerken nokta kullanmanız gerekli. Örneğin; 1.80 olarak giriş yapması lazım boyu 180cm olan kişinin, yoksa yanlış hesaplar.
 
Gelelim hataya;
Kilo_çarpma = kullanıcı_boy*kullanıcı_boy
Hesaplama = 100/kilo_çarpma
İf hesaplama<=18.5:

Şİmdi adamın kilosu X, boyu y olsun, bu ikisini çarrpıyorsun 100'ü buna bölüyorsun, adamın sonucu ne çıkarsa çıksın 100'ü buna bölünce çıkacak değer 18'den küçük olacaktır.

Muhtemelen yapman gereken kilo_çarpma/100 olması gerekiyor.
 
Gelelim hataya;
Kilo_çarpma = kullanıcı_boy*kullanıcı_boy
Hesaplama = 100/kilo_çarpma
İf hesaplama<=18.5:

Şİmdi adamın kilosu X, boyu y olsun, bu ikisini çarrpıyorsun 100'ü buna bölüyorsun, adamın sonucu ne çıkarsa çıksın 100'ü buna bölünce çıkacak değer 18'den küçük olacaktır.

Muhtemelen yapman gereken kilo_çarpma/100 olması gerekiyor.
Normalde ilk başta öyle yazmıştım ama sonradan hatanın orada olduğunu düşünüp değiştirmiştim, teşekkür ederim.
 

Geri
Yukarı