Sololearn İlginç Python Sorusu

349203

Hectopat
Katılım
25 Haziran 2020
Mesajlar
433
Bu soruyu açıklayabilecek biri var mı?
Fonskiyonun içindeki eşitlik ifadesi ve x()(3) ifadesi kafamı karıştırdı.
 

Dosya Ekleri

  • 20200926_210512.jpg
    20200926_210512.jpg
    36,9 KB · Görüntüleme: 112
Fonksiyon içindeki eşitlik ifadesi ilk değeri olmayan şeyler için olması lazım.
X() ifadesi ise fonksiyon çağırma. Def ile X ve Y fonksiyonu tanımlanmış. 3 nedir diyorsanız Y fonksiyonunun değeri oluyor.

X(2) 4 döndürüyor. Çünkü a'yı 2 olarak yolluyoruz. İçinde b de 2 oluyor sanırım. Bu şekilde fonksiyon tanımını bilmiyorum aslında. Ama öyle kabul edersek return a+b kısmından 4 geliyor.
Kabul etmezsek de if a==0 kısmına geliyor. Onun içine girmez. Dolayısıyla return Y(a)'a girer. a=2 demiştik. Y fonksiyonunda b de a, yani 2 olarak tanımlanıyor. Yine aynı kapıya çıkıyor.

İkinci kısımda ise a'yı yollamıyoruz. Bu yüzden a=0. Fonksiyon tanımından geliyor. b=3. return a+b'den de 3 geliyor.
Diğer türlü hesaplayınca 0 hesapladım ben. Programı çalıştırınca çıkan sonuca uygun değil. O yüzden öyle çalışıyormuş.
 
Son düzenleme:
Fonksiyon içindeki eşitlik ifadesi ilk değeri olmayan şeyler için olması lazım.
X() ifadesi ise fonksiyon çağırma. Def ile X ve Y fonksiyonu tanımlanmış. 3 nedir diyorsanız Y fonksiyonunun değeri oluyor.

X(2) 4 döndürüyor. Çünkü a'yı 2 olarak yolluyoruz. İçinde b de 2 oluyor sanırım. Bu şekilde fonksiyon tanımını bilmiyorum aslında. Ama öyle kabul edersek return a+b kısmından 4 geliyor.
Kabul etmezsek de if a==0 kısmına geliyor. Onun içine girmez. Dolayısıyla return Y(a)'a girer. a=2 demiştik. Y fonksiyonunda b de a, yani 2 olarak tanımlanıyor. Yine aynı kapıya çıkıyor.

İkinci kısımda ise a'yı yollamıyoruz. Bu yüzden a=0. Fonksiyon tanımından geliyor. b=3. return a+b'den de 3 geliyor.
Diğer türlü hesaplayınca 0 hesapladım ben. Programı çalıştırınca çıkan sonuca uygun değil. O yüzden öyle çalışıyormuş.
Fonksiyon tanımına ilginç bir boyut katmış bu soru. Yazınızın son 2 cümlesi hariç anladım. Siz output ne buldunuz? Bir de işin ilginci ben compiler'a yazdığımda error aldım.
 
Uyarı! Bu konu 6 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Geri
Yukarı