Çö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.050
Çö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.")
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.

Son olarak size birkaç tavsiye vereyim;
Mümkün mertebe değişken isimlerini İngilizce kullanmaya çalışın.
Tasarladığınız algoritmanın çalıştığına kağıt üstünde bakarak emin olun, elinize bir kağıt kalem alın, kullanıcıdan aldığınız değerleri hesaplayarak programın doğru çalışacağından emin olduktan sonra kod yazmaya başlayın.
Son olarak değişken isimlerini illa Türkçe kullanacaksanız bari isimleri özenerek verin, şimdi bana alt tarafı basit bir program bunda değişken isimlerini ciddi/düzgün/güzel vermekle uğraşmasına ne gerek var diyecekler çıkabilir ama nasıl başlarsan öyle gider. İnan bana bu meslekte ilerleyeceksen nizami kod yazmak çok önemlidir. Kodunu inceleyen birinin ilk bakışta neyin ne olduğunu, hangi değişkenin ne amaçla koyulduğunu anlaması çok işine yarar.
 
Son olarak size birkaç tavsiye vereyim;
Mümkün mertebe değişken isimlerini İngilizce kullanmaya çalışın.
Tasarladığınız algoritmanın çalıştığına kağıt üstünde bakarak emin olun, elinize bir kağıt kalem alın, kullanıcıdan aldığınız değerleri hesaplayarak programın doğru çalışacağından emin olduktan sonra kod yazmaya başlayın.
Son olarak değişken isimlerini illa Türkçe kullanacaksanız bari isimleri özenerek verin, şimdi bana alt tarafı basit bir program bunda değişken isimlerini ciddi/düzgün/güzel vermekle uğraşmasına ne gerek var diyecekler çıkabilir ama nasıl başlarsan öyle gider. İnan bana bu meslekte ilerleyeceksen nizami kod yazmak çok önemlidir. Kodunu inceleyen birinin ilk bakışta neyin ne olduğunu, hangi değişkenin ne amaçla koyulduğunu anlaması çok işine yarar.

Hocam tavsiyelerinize uyacağım, gine her şeye "zayıfsınız" diyor.(Hesap sonucunda 28.5210 bulmasına rahmen.)
@Vavien. bakarsanız sevinirim.

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: "))
kullanıcı_kilo = float(input("Kilonuzu giriniz: "))
kilo_çarpma = kullanıcı_boy*kullanıcı_boy
hesaplama = kilo_çarpma/100
print(hesaplama)
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.")
1632249674841.png
 
Son düzenleme:
Hocam tavsiyelerinize uyacağım, gine her şeye "zayıfsınız" diyor.(Hesap sonucunda 28.5210 bulmasına rahmen.)
@Vavien. bakarsanız sevinirim.


Öncelikle kaynağımı atayım, doğruluğunu araştırmadım önüme çıkan ilk kaynağı aldım bunu da belirteyim.

Sitede belirtilen formul;
Vücut Kitle İndeksi (VKİ) = Vücut Ağırlığı (kg.) / Boy uzunluğunun karesi (m2.)
Yaptığınız hata buradan kaynaklanıyor. Kullandığınız formul hatalı bunu ağırlık/ boyun karesi olacak şekilde revize edin düzgün çalışacaktır.

84/(1.72*1.72) = 28.3 çıkar.

@Vavien. Hocamın attığı kodda zaten boyun karesi alınıyormuş şimdi fark ettim, sanırım bu kısım gözünüzden kaçtığı için hata yaptınız.
 

Öncelikle kaynağımı atayım, doğruluğunu araştırmadım önüme çıkan ilk kaynağı aldım bunu da belirteyim.

Sitede belirtilen formul;
Vücut Kitle İndeksi (VKİ) = Vücut Ağırlığı (kg.) / Boy uzunluğunun karesi (m2.)
Yaptığınız hata buradan kaynaklanıyor. Kullandığınız formul hatalı bunu ağırlık/ boyun karesi olacak şekilde revize edin düzgün çalışacaktır.

84/(1.72*1.72) = 28.3 çıkar.

@Vavien. Hocamın attığı kodda zaten boyun karesi alınıyormuş şimdi fark ettim, sanırım bu kısım gözünüzden kaçtığı için hata yaptınız.
Hatanın sonucunu formülün yanlış olmasıymış meğerse, sağ olun hocam.
 

Geri
Yukarı