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: 92
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.
 

Geri
Yukarı