Başında print olmadığı hâlde bu kod nasıl çalışabiliyor?

Merhaba, bir sorum olacak; başında print olmadığı hâlde bu kod nasıl çalışabiliyor?

f’Sayıların toplamı { int(input("Birinci sayıyı girin: ")) + int(input("İkinci sayıyı girin: ")) } eder.’

(Tabii ilk tırnak işaretini bir türlü düzeltemedim. Forumun post düzenleyicisi tek tırnağı yanlış gösteriyor.)

inputlarda print etmeniz gerekmez ki zaten

Ama burada inputlar bir stringin içinde değil mi? f-stringin bu şekilde çalışabilmesi garip geldi. Sanki ya bir değişkene atanmalıydı ya da başında print olmalıydı gibi. Yeniyim, kavrayamadım.

İnput kullanıcının veri girmesini ister.

Öncelikle forumdaki kod görünümü için şuraya göz atın,

Yeni oldugunuzu söylemişsiniz. Yazbel belgeler’e göz atın daha detaylı anlarsınız. Ama yinede kabaca açıklayacak olursak

f stringe python3 sürümüyle eklenmiş ve format metoduna göre daha esnek yapıda. Yani içerisinde aritmetik işlemler ve inputlar kullanılabilir.

print fonksiyonu sadece ekrana cıktı işlemi yapar. Print fonksiyonu eklerseniz kodlarınız sonucu gösterir ama eklemezseniz sadece inputlar calışır ekrana sonuç çıktısını vermez.

Etkileşimli kabukta print kullanmasanız dahi ekrana cıktı verilicektir. Ama kod editöründe denerseniz print olmadan ekrana sonuç gösterilmez.

Bu kod her yerde çalışıyor. Kabuk veya program fark etmiyor. :thinking:

Yazdırılacak ifadenin başındaki f harfini print gibi düşünebilirsiniz. Yorumlayıcı (python kodlarını bilgisayarın anladığı 0 ve 1’lere çeviren aracı yazılım) f harfini gördüğünde ekrana bir şeyler basılacığını anlıyor. print ile aynı mantık, sadece kullanım açısından daha sade ve kolay, farklı güzel bir alternatif.

1 Beğeni

Bir düzeltme yapmak istiyorum, f-string'i print gibi düşünmeyin. Yani yorumlayıcı stringin başında f'i görünce bunun ekrana bastırılacağını anlamıyor. f-string sadece string biçimlendirme ile alakalı.

Şu ifade ile,

"{}".format(input(">>> "))

Şu ifade arasında bir fark yok aslında.

f"{input('>>> ')}"

Eğer yorumlayıcıya 1 veya 1 + 1 veya "hello world" veya [1, 2] yazıp enter tuşuna basarsanız, bunlar ekrana yazdırılacaktır. Mesela 1 + 1, 2 şeklinde ekrana yazdırılacak.

Ama eğer bir py dosyasının içine sadece "hello world" veya "{}".format(input(">>> ")) veya 1 veya 1 + 1 yazıp dosyayı kaydeder, sonra da komut satırından bu dosyayı çalıştırırsanız, ekrana hiçbir şey yazdırılmaz. input()'lu örnekte input() çalıştırılır, başka da bir şey yapılmaz.

4 Beğeni