Temel İşlemler ve Kullanıcıdan Veri Alma

Bu derste sıradaki adım, programlarını gerçekten etkileşimli hâle getirmek: kullanıcıdan bilgi alıp bu bilgilerle hesaplama yapmak. Önceki derste değişkenleri ve veri tiplerini öğrenmiştin; bu derste onları matematiksel işlemlerle birleştirip, sabit değerler yerine kullanıcının girdiği değerlerle çalışan gerçek bir program yazacaksın.

Bu derste ne yapacağız?

Hedefimiz iki şey: Python'da temel matematiksel işlemleri (toplama, çıkarma, çarpma, bölme ve benzerlerini) doğru şekilde kullanmak ve input() fonksiyonuyla kullanıcıdan klavyeden veri almak. Bu ikisini birleştirerek dersin sonunda kullanıcıdan iki sayı alıp toplamını, farkını ve çarpımını ekrana yazan küçük bir hesap makinesi programı yazmış olacaksın.

Ön koşul: Bu kursun 3. dersinde işlenen değişkenler, veri tipleri (özellikle str ve int) ve print() fonksiyonu konularına aşina olman gerekiyor. Eğer o dersi henüz tamamlamadıysan, önce ona göz atmanı öneririz.

Kavram

Matematiksel işlemleri günlük hayattan tanıyorsun zaten: markette alışveriş toplamı hesaplarken toplama, kalan parayı bulurken çıkarma yaparsın. Python da tıpkı bir hesap makinesi gibi çalışır, sadece işlemleri kod satırlarıyla yazarsın.

Python'da kullanılan temel matematiksel operatörler şunlardır:

OperatörAnlamıÖrnekSonuç
+Toplama5 + 38
-Çıkarma5 - 32
*Çarpma5 * 315
/Bölme (ondalıklı sonuç)5 / 22.5
//Tam sayı bölme (küsuratı atar)5 // 22
%Mod (bölümden kalan)5 % 21
**Üs alma5 ** 225

Şimdi ikinci kavrama geçelim: input(). Bir programın kullanışlı olması için genellikle kullanıcıdan bilgi alması gerekir. Tıpkı bir ATM'nin sana "Lütfen tutarı giriniz" demesi gibi, input() fonksiyonu da ekranda bir mesaj gösterip kullanıcının klavyeden bir şey yazıp Enter tuşuna basmasını bekler.

Burada çok önemli bir nokta var: input() ile alınan her değer, Python için otomatik olarak metin (str) kabul edilir. Kullanıcı "25" yazsa bile, Python bunu sayı değil, harf dizisi olarak görür. Eğer bu değerle matematiksel işlem yapmak istiyorsan, önce onu sayıya dönüştürmen gerekir. Bunun için int() (tam sayıya çevirir) veya float() (ondalıklı sayıya çevirir) fonksiyonlarını kullanırsın.

Adım adım uygulama

Not: Bu adımlar genel bir Python geliştirme ortamı (örneğin bir kod düzenleyici ve terminal penceresi) için yazılmıştır; kullandığın programın arayüzü sürüme göre küçük farklılıklar gösterebilir.

  • Bir önceki derste kullandığın kod düzenleyicini aç ve yeni bir dosya oluştur; adını hesap_makinesi.py koy.
  • Aşağıdaki kodu satır satır, sırayla yazacağız. Önce kullanıcıdan isim alalım:
isim = input("Adınızı girin: ")
print("Merhaba,", isim)

Bu iki satırda ne oldu: birinci satırda input() ekrana "Adınızı girin: " yazısını gösterir, kullanıcının yazdığı metni bekler ve yazılan değeri isim adlı değişkene kaydeder. İkinci satırda ise print() ile bu ismi kullanarak bir selamlama mesajı yazdırırız.

Şimdi bu dosyayı çalıştır. Kod düzenleyicinde genellikle bir Çalıştır (Run) düğmesi bulunur; ona tıkla veya terminal penceresini açıp aşağıdaki komutu yaz:

python hesap_makinesi.py

Ekranda "Adınızı girin: " yazısını göreceksin. Adını yazıp Enter tuşuna bas; ardından "Merhaba, [adın]" mesajını göreceksin.

Şimdi sıra sayısal işlemlerde. Aynı dosyanın devamına şu satırları ekle:

sayi1 = input("Birinci sayıyı girin: ")
sayi2 = input("İkinci sayıyı girin: ")

sayi1 = int(sayi1)
sayi2 = int(sayi2)

toplam = sayi1 + sayi2
fark = sayi1 - sayi2
carpim = sayi1 * sayi2

print("Toplam:", toplam)
print("Fark:", fark)
print("Çarpım:", carpim)

Satır satır ne yaptığımıza bakalım:

  • sayi1 = input(...) ve sayi2 = input(...) satırları kullanıcıdan iki değer alır, ancak bu değerler henüz metin (str) türündedir.
  • sayi1 = int(sayi1) satırı, metin olan değeri tam sayıya çevirip tekrar aynı değişkene atar. Aynısını sayi2 için de yapıyoruz.
  • toplam, fark ve carpim değişkenleri, artık sayıya dönüştürülmüş sayi1 ve sayi2 ile hesaplanan sonuçları tutar.
  • Son üç print() satırı, hesaplanan sonuçları ekrana yazdırır.

Programı tekrar çalıştır ve iki farklı sayı gir; örneğin 12 ve 5. Ekranda toplamın 17, farkın 7 ve çarpımın 60 olduğunu görmelisin.

İpucu: Eğer ondalıklı sayılarla (örneğin 3.5 gibi) çalışmak istersen, int() yerine float() fonksiyonunu kullanman gerekir; çünkü int() ondalıklı bir metni sayıya çevirmeye çalışırken hata verir.

Sık karşılaşılan sorunlar

Hata / SorunOlası SebepÇözüm
ValueError: invalid literal for int()Kullanıcı sayı yerine harf girdi veya ondalıklı bir sayıyı int() ile çevirmeye çalıştınKullanıcının gerçekten sayı girdiğinden emin ol; ondalıklı sayılar için int() yerine float() kullan
TypeError: unsupported operand type(s) for +: 'int' and 'str'Bir değişken sayıya çevrilmeden matematiksel işlemde kullanıldıinput() ile alınan değeri işlemden önce mutlaka int() veya float() ile dönüştür
Program çıktısında sayılar yan yana birleşik görünüyorSayılar metin (str) olarak toplandı, örneğin "5"+"3" işlemi "53" verirToplama işleminden önce değerleri int() veya float() ile sayıya dönüştür
Program hiç çalışmıyor, hemen kapanıyorTerminal üzerinden çalıştırmadın veya dosya kaydedilmediDosyayı kaydettiğinden emin ol, ardından terminalden python dosya_adi.py komutuyla çalıştır

Mini görev

Şimdi öğrendiklerini kullanarak kendi başına küçük bir program yaz: kullanıcıdan bir ürünün fiyatını ve kaç adet alacağını sor, ardından toplam tutarı hesaplayıp ekrana yazdır. Ekstra olarak, eğer toplam tutar 100'den büyükse "%10 indirim kazandınız!" mesajını da eklemeyi deneyebilirsin (bu kısım için bir sonraki derste öğreneceğin koşullu ifadelere ihtiyacın olacak, şimdilik sadece toplamı hesaplamak yeterli).

Kontrol listesi:

  • Kullanıcıdan fiyat bilgisini input() ile aldın mı?
  • Kullanıcıdan adet bilgisini input() ile aldın mı?
  • Her iki değeri de matematiksel işlem yapmadan önce float() veya int() ile sayıya çevirdin mi?
  • Fiyat ile adedi çarparak toplam tutarı hesapladın mı?
  • Sonucu print() ile ekrana yazdırdın mı?
  • Programı çalıştırıp farklı değerlerle test ettin mi?

Kendini sına

1) input() fonksiyonuyla alınan bir değerin varsayılan veri tipi nedir?

2) 7 // 2 işleminin sonucu kaçtır?

3) Kullanıcıdan alınan bir metni tam sayıya çevirmek için hangi fonksiyon kullanılır?

4) "5" + "3" işleminin Python'daki sonucu nedir ve neden?

5) 2 ** 3 işleminin sonucu kaçtır?

Cevaplar

1) Metin (str) türündedir; sayı olarak kullanılmak isteniyorsa int() veya float() ile dönüştürülmelidir.

2) 3'tür (tam sayı bölme küsuratı atar, 7/2=3.5 iken 7//2=3 verir).

3) int() fonksiyonu kullanılır.

4) Sonuç "53" olur, çünkü her iki değer de metin (str) türündedir ve + operatörü metinlerde birleştirme (concatenation) işlevi görür, toplama değil.

5) 8'dir (2 üzeri 3, yani 2*2*2=8).

Bu derste kullanıcıdan veri almayı ve bu verilerle matematiksel işlemler yapmayı öğrendin; artık statik değil, etkileşimli programlar yazabiliyorsun. Bir sonraki derste, programının farklı durumlara göre farklı kararlar verebilmesini sağlayan koşullu ifadeleri (if-else) öğreneceksin; böylece mesela girilen sayıya göre "indirim kazandınız" gibi mesajlar gösterebileceksin.

Bu dersi kayıt olmadan izleyebilirsin. İlerlemeni kaydetmek, sertifika almak ve puan tablosuna girmek için ücretsiz üye ol: Kayıt Ol