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
    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 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.
 
Girintileri yanlış yapmış olabilirsiniz. İlk kısım 4, ikinci kısım 3 döndürüyor.
Evet şimdi anladım. Çözümde sıkıntı yok ama kafama takılan yazdığımda error vermesi. Siz compiler'a yazıp output aldınız mı?
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…