Arama butonu
Bu konudaki kullanıcılar: 1 misafir
6
Cevap
319
Tıklama
0
Öne Çıkarma
Fonksiyonlar hakkında küçük bir soru
A
5 yıl
Er
Konu Sahibi

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 >

A
5 yıl
Yarbay

Function u sonuç a nasıl atıyorsunuz

Orayı atabilir misiniz, anlayamadım



< Bu ileti mini sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
A
5 yıl
Er
Konu Sahibi

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.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @alimmm78
A
5 yıl
Yarbay

Çü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ı >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @arnfauglith
A
5 yıl
Er
Konu Sahibi

Ç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.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @alimmm78
A
5 yıl
Yarbay

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ı >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @arnfauglith
A
5 yıl
Er
Konu Sahibi

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 >


Bu mesajda bahsedilenler: @alimmm78
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.