Şimdi Ara

Fonksiyonlar hakkında küçük bir soru

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
8
Cevap
0
Favori
255
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhabalar geçenlerde python öğrenmeye başladım ve izlediğim videolardan birinde uygulamalı olarak çalışırken aklıma bir soru takıldı ve sizlere danışmak istedim

    def bmi_c(isim, boy, kilo):
    bmi = kilo / (boy ** 2)
    print("bmi:")
    print(bmi)
    if bmi < 25:
    return isim + " obez değil."
    else:
    return isim + " obez."

    Yukarıda gördüğünüz şekilde bir blok oluşturdum ve bu bloğu "sonuç1" değişkenine atadım. "sonuç1" değişkenini çalıştırdığımda karşıma gelen çıktıda bana sadece BMI veriliyor. Ancak burada BMI bana verildikten sonra return komutu ile aşağıya ismim ile beraber "obez değildir." yazısının çıkması gerektiğini düşündüm. Bu yazıyı alabilmek için neden ayriyetten print komutu ile "sonuç1" değişkenini çalıştırmam gerek ?

    Cevaplarınızı bekliyorum şimdiden teşekkürler.

    not: kodlarda bir sıkıntı yok sitede tam olarak ayarlayamadım boşluklar vs olması gerektiği gibidir.



    < Bu mesaj bu kişi tarafından değiştirildi arnfauglith -- 1 Temmuz 2020; 23:41:21 >







  • Function u sonuç a nasıl atıyorsunuz

    Orayı atabilir misiniz, anlayamadım

    < Bu ileti mini sürüm kullanılarak atıldı >
  • alimmm78 kullanıcısına yanıt
    sonuç1 = bmi_c(isim1, boy1, kilo1)

    şeklinde atadım ve komutu çalıştırdığımda

    bmi:
    22.625236294896027 çıktısını alıyorum.

    Daha sonra print(sonuç1) komutunu çalıştırdığımda ise "Ömer obez değil." cevabını alıyorum. Benim burda aklıma takılan şey ben aynı şekilde sonuç1 değişkenini çalıştırdığımda, print ettiğim zaman aldığım "Ömer obez değil." cevabını neden aynı şekilde alamıyorum.
  • arnfauglith kullanıcısına yanıt
    Çünkü birisi return edilen bir şey
    Biri de sadece basılan


    A = fonksiyonb diyince
    Fonksiyonb nin içinde return ettiğiniz değer dışında ne yapıp ettiğiniz A yı ilgilendirmez.
    Yani print vb A ya yazılmıyor.

    Def funcB:
    Print (“bir şeyler yazıyorum”)
    Return “Bir değer”

    A = funcB()
    Dediğinizde önce sağ taraf yorumlanır
    Funcb çağrılıp print (“bir... ) edilir
    Sonra bu fonksiyon “bir değer” i döner
    Bu değeri A ya eşitler

    Artık A = “bir değer” dir

    Print ( a ) diyince , funcb nin içinde olan print vb bizi ilgilendirmez

    < Bu ileti mini sürüm kullanılarak atıldı >
  • alimmm78 kullanıcısına yanıt
    Çok teşekkür ederim. Eğer anlayabildiysem kısaca yazdığım fonksiyon bloğunu bir değişkene atadığım zaman program kendine sadece return komutunu alıyor ve bir nevi print komutlarını aradan çıkarmak isteyip çalıştırıyor.

    Yanlış değilsem eğer ki return komutu da print komutu gibi kendi başına bize bir çıktı verebilseydi fonksiyonu değişkene atadığımız zaman o da bizlere print komutu gibi çıktı vericekti ancak bu sefer değişkeni kullanmak isteyip çağırdığımızda değişkene hiç bir değer tanımlanmayıp "None" çıktısını alacaktık.
  • arnfauglith kullanıcısına yanıt
    yazdığım fonksiyon bloğunu bir değişkene atadığım zaman program kendine sadece return komutunu alıyor ve bir nevi print komutlarını aradan çıkarmak isteyip çalıştırıyor.

    Bu kısma aradan çıkartmak demeyelim

    Funksiyon bi değeri return eder,

    EkmekVer() diyince sadece ekmek döner mesela ama bakkala gidip sipariş verip getiriyorum kısımları o fonksiyonun içindedir,
    Bunu da eşittir ile bir şeye eşitleyince artık o eşitlediğimiz şey sadece = ekmektir
    Fonksiyon ile herhangi bir bağı yok

    < Bu ileti mini sürüm kullanılarak atıldı >
  • alimmm78 kullanıcısına yanıt
    Teşekkür ederim yani biz değişkene atayıp komutu çağırdığımız zaman "ekmek" almaya gittiğimiz kısımlar hâla duruyor fakat biz sadece ekmeği aldığımız kısmı görüyoruz diyebilir miyiz?

    Not: Ayrıca bizim "ekmek" almaya gittiğimiz kısımları print komutu ile çağırdığımız değişken ile getirme imkanı var mıdır ?



    < Bu mesaj bu kişi tarafından değiştirildi arnfauglith -- 2 Temmuz 2020; 14:11:16 >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.