Ana Sayfa · Akademi · Robotik ve Kodlama · Python Temelleri · Kullanıcıdan Veri Alma

Kullanıcıdan Veri Alma

input() ile veri almayı, metni sayıya çevirmeyi ve f-string ile çıktı vermeyi öğren.

DERS PUSULASI

Bu sayfayı ne için kullanacaksın?

Ana fikir

input() fonksiyonu, programın çalışırken kullanıcıya bir soru sormasını ve klavyeden yazılan cevabı bir değişkende saklamasını sağlar.

Üretilecek kanıt

Kullanıcının yaşını sorup 10 yıl sonra kaç yaşında olacağını söyleyen bir program yaz. int(input(...)) ile kullanıcıdan yaşını al ve yas değişkenine koy. gelecek_yas adında yeni bir değişken oluştur ve yas + 10 değerini ver. f-string kullanarak sonucu güzel bir cümleyle yazdır. Örneğin: 10 yıl sonra 22 yaşında olacaksın. Çalıştıktan sonra şunu dene: int()…

Kontrol tuzağı

int() kullanmayı unutmak En sık yapılan hata budur. input() her zaman metin verdiği için, sayı işlemi yapmadan önce int() ile çevirmezsen ya hata alırsın ya da beklenmedik bir sonuç (metinlerin yapışması) görürsün. sayi = input("Sayı: ") # sayi bir metin sayi = int(input("Sayı: ")) # doğrusu: sayı gerçekten sayı…

Sonraki bağlantı

Koşullar: if , elif ve else ile programın kullanıcının cevabına göre farklı kararlar vermesini öğreniyoruz.

Modül kaynakları: Python Tutorial · Arduino Learn

SeviyeBaşlangıç
Yaş10–16
Süre30–45 dk
Ön koşulDeğişkenler ve Veri Türleri
İçerikStandart ders · 1.403 kelime
Son güncelleme

Bir cümlelik özet

input() fonksiyonu, programın çalışırken kullanıcıya bir soru sormasını ve klavyeden yazılan cevabı bir değişkende saklamasını sağlar.

Neden önemli?

Şimdiye kadar yazdığımız programlar hep aynı değerlerle çalıştı. Sayıları kodun içine biz yazdık, program da her seferinde aynı sonucu verdi. Ama gerçek programlar böyle değildir: bir hesap makinesi hangi sayıları toplayacağını, bir oyun oyuncunun adını, bir robot arayüzü hangi komutu vereceğini kullanıcıdan öğrenir.

Kullanıcıdan veri almayı öğrendiğimizde programımız artık bizimle konuşmaya başlar. Aynı kod, her çalıştırıldığında farklı bir cevaba göre farklı bir sonuç üretebilir. Bu, programı gerçekten işe yarar hâle getiren büyük bir adımdır.

input() ile soru sormak

Python'da kullanıcıdan bilgi istemek için input() fonksiyonunu kullanırız. Parantezin içine bir soru veya açıklama yazarız; bu metin ekranda görünür ve kullanıcıyı yönlendirir.

isim = input("Adın ne? ")
print("Merhaba " + isim)

Program çalışınca ekranda Adın ne? yazısı belirir ve durup bekler. Kullanıcı bir şey yazıp Enter'a bastığında, yazdığı metin isim değişkenine konur. Sonraki satır da onu selamlar.

Burada input() iki iş yapar: önce parantezteki mesajı gösterir, sonra kullanıcının cevabını bize geri verir. Bu cevabı bir değişkende saklamazsak kaybolur, o yüzden her zaman isim = input(...) gibi bir kutuya koyarız.

input() her zaman metin döndürür

Burada çok önemli bir kural var: input() sana ne yazılırsa yazılsın, cevabı her zaman metin (string) olarak verir. Kullanıcı 5 yazsa bile Python bunu 5 sayısı olarak değil, "5" metni olarak alır.

Bu neden önemli? Çünkü metinlerle sayı işlemi yapamayız. Şu koda bakalım:

sayi = input("Bir sayı gir: ")
print(sayi + 1)   # HATA

Kullanıcı 5 yazsa bile bu satır çalışmaz ve hata verir. Çünkü sayi aslında "5" metnidir; Python bir metne 1 sayısını nasıl ekleyeceğini bilemez. Metin ile sayıyı toplamaya çalışmak, "elma + 1" demeye benzer.

Metni sayıya çevirmek

Kullanıcının girdiği metni sayıya dönüştürmek için int() fonksiyonunu kullanırız. int, İngilizce "integer" yani "tam sayı" kelimesinden gelir.

sayi = int(input("Bir sayı gir: "))
print(sayi + 1)

Bu satırı içten dışa doğru okuruz:

  1. input("Bir sayı gir: ") kullanıcıdan bir metin alır (örneğin "5").
  2. int(...) bu metni sayıya çevirir (5).
  3. sayi = ... sonucu sayi değişkenine koyar.

Artık sayi gerçek bir sayıdır, onunla işlem yapabiliriz. Kullanıcı 5 yazarsa program 6 yazar.

Küçük not: int() yalnızca tam sayılar için kullanılır. Kullanıcıdan ondalıklı bir sayı (örneğin 3.5) alacaksan float() fonksiyonunu kullanırsın. Bu derste tam sayılarla çalışacağız.

f-string ile düzgün çıktı

Sonucu ekrana yazarken metinle sayıyı bir arada göstermek isteriz. Bunu yapmanın en temiz yolu f-string'dir. Metnin başına f harfi koyar, değişkenleri de süslü parantez {} içine yazarız.

isim = input("Adın ne? ")
yas = int(input("Kaç yaşındasın? "))
print(f"Merhaba {isim}, {yas} yaşındasın.")

Kullanıcı Ada ve 12 girerse ekranda şu görünür:

Merhaba Ada, 12 yaşındasın.

f-string sayesinde metinleri + ile birleştirmek zorunda kalmayız ve sayıları metne çevirmekle uğraşmayız; Python süslü parantezlerin içindeki değeri otomatik olarak yerleştirir.

Örnek: İki sayının toplamı

Şimdi öğrendiklerimizi birleştirelim. Kullanıcıdan iki sayı alıp toplamlarını gösteren bir program yazacağız.

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

toplam = sayi1 + sayi2

print(f"{sayi1} + {sayi2} = {toplam}")

Program çalışınca sırayla iki soru sorar. Kullanıcı 7 ve 8 girerse ekranda şunu görürüz:

7 + 8 = 15

Burada üç fikir bir arada çalışıyor:

int() kullanmayı unutsaydık ne olurdu? sayi1 + sayi2 toplama değil, iki metni yan yana yapıştırma olurdu: 7 + 8 78 sonucunu verirdi. Bu, input() ile çalışırken en sık karşılaşılan tuzaktır.

Mini uygulama

Kullanıcının yaşını sorup 10 yıl sonra kaç yaşında olacağını söyleyen bir program yaz.

  1. int(input(...)) ile kullanıcıdan yaşını al ve yas değişkenine koy.
  2. gelecek_yas adında yeni bir değişken oluştur ve yas + 10 değerini ver.
  3. f-string kullanarak sonucu güzel bir cümleyle yazdır. Örneğin: 10 yıl sonra 22 yaşında olacaksın.

Çalıştıktan sonra şunu dene: int() fonksiyonunu kaldır ve programı tekrar çalıştır. Hangi hatayı aldığını gözlemle. Bu, input()'un neden metin döndürdüğünü unutmamana yardımcı olur.

Uygulama laboratuvarı: Kullanıcıdan Veri Alma

Kullanıcıdan Veri Alma konusunu kalıcı hâle getirmenin en iyi yolu, kavramı küçük ve ölçülebilir bir göreve dönüştürmektir. Bu çalışmada input() ile soru sormak ile Metni sayıya çevirmek arasındaki ilişkiyi kullanarak çalışan kısa bir Python 3 programı, örnek girdiler ve beklenen çıktılar hazırlayacaksın. Amaç yalnız sonucun çalışması değil; hangi kararı neden verdiğini, neyi test ettiğini ve hangi durumda tasarımı değiştireceğini açıklayabilmektir.

Görev senaryosu

Şu senaryoyu ele al: bir dosyadaki satırları okuyup basit özet çıkaran araç. Dersin ana hedefi “input() ile veri almayı, metni sayıya çevirmeyi ve f-string ile çıktı vermeyi öğren” olduğuna göre önce problemi tek cümleyle tanımla. Ardından sistemin alacağı girdiyi, uygulayacağı işlemi ve üreteceği çıktıyı ayrı ayrı yaz. Bilmediğin bir ayrıntı varsa onu varsayım olarak işaretle; varsayımı gerçek bilgi gibi kullanma.

  1. Planla: Başlangıç durumunu, beklenen sonucu ve kullanacağın kavramları yaz.
  2. En küçük sürümü kur: Yalnız temel davranışı çalıştır; süsleme ve ek özellikleri sonraya bırak.
  3. Üç test hazırla: Normal bir durum, sınırda bir durum ve hatalı ya da beklenmeyen bir durum seç.
  4. Sonucu kaydet: Beklenen ile gerçekleşeni yan yana yaz; fark varsa olası nedeni belirt.
  5. Tek değişiklik yap: Aynı anda birçok şeyi değiştirmek yerine bir kararı düzeltip testi yeniden çalıştır.

Başarı ölçütleri

“Kullanıcıdan Veri Alma” çalışmasını bitirdiğinde ürünü bir arkadaşına yalnız bölüm başlıklarıyla anlat. Arkadaşın bir dosyadaki satırları okuyup basit özet çıkaran araç senaryosundaki adımları ve karar nedenlerini takip edebiliyorsa anlatım yeterince açıktır. Anlaşılmayan noktayı daha fazla terim ekleyerek değil, input() ile soru sormak ve Metni sayıya çevirmek ilişkisini daha küçük adımlara bölerek düzelt.

Sık yapılan hatalar

int() kullanmayı unutmak

En sık yapılan hata budur. input() her zaman metin verdiği için, sayı işlemi yapmadan önce int() ile çevirmezsen ya hata alırsın ya da beklenmedik bir sonuç (metinlerin yapışması) görürsün.

sayi = input("Sayı: ")   # sayi bir metin
sayi = int(input("Sayı: "))   # doğrusu: sayı gerçekten sayı

Parantezleri yanlış kapatmak

int(input("...")) yazarken iki açılan parantez var, o yüzden iki de kapanan parantez olmalı. Biri eksik kalırsa Python SyntaxError verir. Kodu içten dışa doğru saymak yardımcı olur.

Sayı yerine harf girildiğinde

int() sadece sayı görünümündeki metinleri çevirebilir. Kullanıcı 5 yerine beş yazarsa program hata verir. Şimdilik kullanıcının doğru tür veri gireceğini varsayıyoruz; ileride bu durumları nasıl kontrol edeceğimizi öğreneceğiz.

Cevabı bir değişkende saklamamak

input("Adın ne? ") tek başına yazılırsa cevap alınır ama hemen kaybolur. Cevabı sonradan kullanmak istiyorsan mutlaka isim = input(...) gibi bir değişkene koymalısın.

Güvenlik notu

Kullanıcıdan veri alan programlar yazarken alışkanlık hâline getirmen gereken bir kural var: kişisel ve özel bilgileri sorma ve isteme. Alıştırma programların adres, telefon numarası, okul adı, şifre veya aile bilgileri gibi özel şeyleri istememeli. Öğrenmek için ad, yaş, en sevdiğin renk veya bir oyun skoru gibi zararsız bilgiler yeterlidir.

Ayrıca yalnızca kendi yazdığın veya güvendiğin kodu çalıştır. İnternette bulduğun ve ne yaptığını anlamadığın bir programı, bir yetişkine sormadan çalıştırma.

Ders özeti

Kontrol soruları

  1. input() fonksiyonu ne işe yarar ve cevabı hangi türde döndürür?
  2. sayi = input("Sayı: ") yazdıktan sonra sayi + 1 neden hata verir?
  3. int(input("Yaş: ")) satırını içten dışa doğru adım adım açıkla.
  4. Kullanıcı 4 ve 5 girerse, print(sayi1 + sayi2) satırı int() kullanılmadan ne yazdırır?
  5. Bir alıştırma programında kullanıcıdan istememen gereken bilgilere iki örnek ver.

Cevaplar

  1. input(), program çalışırken ekranda bir mesaj gösterir ve kullanıcının klavyeden yazıp Enter'a bastığı cevabı alır. Bu cevabı her zaman metin (string) olarak döndürür.
  2. Çünkü input() cevabı metin olarak verir; sayi aslında "4" gibi bir metindir. Python bir metne sayı ekleyemez, bu yüzden sayi + 1 hata verir. Önce int() ile sayıya çevirmek gerekir.
  3. Önce input("Yaş: ") kullanıcıdan bir metin alır. Sonra int(...) bu metni tam sayıya çevirir. En dıştaki atama da bu sayıyı bir değişkene koyar.
  4. 45 yazdırır. int() olmadan her iki değer de metindir; + işareti iki metni toplamaz, yan yana yapıştırır.
  5. Örneğin: ev adresi, telefon numarası, şifre, okul adı, aile bilgileri. (İkisini yazması yeterli.)

Kaynak ve doğrulama notu

“Kullanıcıdan Veri Alma” dersi için doğrulama odağı input() ile soru sormak ile Metni sayıya çevirmek arasındaki ilişkinin örnekler üzerinde tutarlı çalışmasıdır. Kod örnekleri Python 3 sözdizimi esas alınarak hazırlanmıştır. Çalıştırma ortamına göre küçük farklar görülebileceği için örnekler önce güvenli bir çevrim içi editörde veya yerel geliştirme ortamında denenmelidir.

Sonraki ders

Koşullar: if, elif ve else ile programın kullanıcının cevabına göre farklı kararlar vermesini öğreniyoruz.

Quiz’i BaşlatPython Temelleri bölümüne dön
SORU HAVUZU

Bu dersi 10 soruyla pekiştir

Bu ders için 20 soruluk bir havuz hazırlandı. Her başlangıçta 10 soru ve seçenekler yeniden karıştırılır.