Çok absürt bir deneme olmuş olabilir. Ancak amacım, “def kumashesapla” fonksiyonunu çağırıp ilgili sayıları yanına yazdığım zaman, üçünün çarpılması ve print ile ekrana vermesi. Burada yaptığım mantık hatası tam olarak nedir? Fonksiyonlar böyle işlemler için kullanılmıyor mu?
Fonksiyonun sonundaki def içeren satırı silmeniz gerekiyor. Çünkü def ifadesi fonksiyon çağrılırken değil, fonksiyon tanımlanırken kullanılır ve şu haliyle girintiniz de düzgün olmadığı için bir IndentationError hatası alırsınız. Yani ilk def anahtar sözcüğünü içeren satırın girintisini azaltmanız lazım.
Cevap için teşekkürler. Pekala şunu da sormak isterim:
Fonksiyonun parantezine gireceğim değeri belirlediğim zaman çarpma işlemi yapılıyor. Bu durumda fonksiyon içinde yukarıdaki koddaki gibi kullanıcıdan input istemem yanlış mı oldu? Yani hem bir değer istiyorum hem de değeri ben giriyorum?
Veya input istediğim zaman fonksiyonu boş mu çağırmalıyım?
Çalışan kod şu şekilde:
def kumashesapla(gr,en,boy):
carp = gr * en * boy
print(f"Pastalın bir katı: {carp} kg.")
kumashesapla(220,180,10)```
Pekala, söylediğiniz gibi değişken adlarını parantez içerisinde yazdığım zaman fonksiyon çalışmıyor. Ancak parantez içerisinde üç sayı yazdığım zaman inputlar çalışıyor ancak girdiğim yeni input değerlerini çarpıyor.
Buradaki (ve yukaridaki mesajlardan da anladigim kadariyla, genel) probleminiz kodun analizini duz yazi seklinde yapiyor olmaniz.
kumashesapla(_gr, _en, _boy)
Soyle bir koda bakan python programcisi da, python’in kendisi de, uc adet arguman alan bir fonksiyon cagrisi gorur. Argumanlarin degerleri, fonksiyonun ne yapacagi filan bunun uzerine tartisilir.
Benzer bir ornegi Turkceden vereyim:
ahmet eve gel
eve git ahmet
ahmet kelimesi soldaysa konusmaci ahmet’in evinde mi demek?
arkadasimla konusurken “eve” kelimesini cikartmali miyim?
Manali analiz yapmaya baslayabilmek icin once cumle ogelerini cikartmak gerekiyor.