Bana kod yazmayı öğret baba – Bölüm 3

Normalde bilgisayar programları kullanıcıyla içli dışlıdır. Çift tıklarsınız açılır. Ekranda bir şeye tıklarsınız, o sizi bir menüye götürür. Bir kutuya isminizi yazarsınız, sonra düğmeye basarsınız vs. Bizim şu ana kadar yaptıklarımız tamamen değerlerini kendimiz tayin ettiğimiz değişkenlerin değerleriyle oynayıp ekrana o değerleri yazmak. Şu ana kadar hiçbir kullanıcıdan girdi (input) almadık. Bu dersimize kullanıcıya biraz hal hatır sorarak başlayalım. Böylece kullanıcıdan girdi nasıl alırız ve o girdiyi nasıl kullanırız, öğrenelim. Compilerımızı henüz bookmark’lamamış olanlarımız varsa buradan buyursun.

isim = input("Adiniz nedir?") 
yazilacak_cumle = "Selam " + isim + "!"
print(yazilacak_cumle)

Bu parça kodu çalıştırdığımızda compiler ekrana “Adınız nedir?” sorusunu yazıp sizden bir girdi bekleyecektir. İsminizi yazıp enter’a basabilirsiniz.

Input() fonksiyonunu kullanarak bir kullanıcıdan alabileceğimiz en basit şekilde girdi aldık. Input() fonksiyonu içine yazdığımız “Adınız nedir?” stringini ekrana yazarak kullanıcıdan bir girdi istedi. Yazdığımız kelimeyi de isim değişkeninin yeni değeri yaptı. Sonrasındaysa bir önceki derste öğrendiğimiz yöntemleri kullanarak stringleri topladık ve ekrana yazmak istediğimiz cümleyi yazdırdık. Bu işi biraz daha uzatalım ve daha farklı şeyler soralım kullanıcıya. Mesela:

isim = input("Adiniz nedir?") 
soyad = input("Peki ya soyadiniz?")
yas = input("Yasiniz da rica etsem ayip olmaz umarim?")
yazilacak_cumle = "Hosgeldiniz sayin " + isim + " " + soyad + ". Hic " + yas + " gostermiyorsunuz!"
print(yazilacak_cumle)

Biraz eğlenmeye başladık sanki? Üstelik epey de kibarız. Kullanıcıyı görmeden yaşını kullanarak kendisine iltifat edebiliyoruz. Şimdi bir seviye daha yukarı çıkalım. Kullanıcının yaşını sorduktan sonra o yaş değerini alıp ikiyle çarpalım ve “Yaşınızın 2 katı x” şeklinde bir yazı yazalım. İşte şöyle bir parça kod kullanarak.

yas = input("Yasiniz?")
yasin_iki_kati = yas * 2
yazilacak_cumle = "Yasinizin 2 kati " + yasin_iki_kati
print(yazilacak_cumle)

Hemen test edelim ve onaylayalım. Ben denedim mesela, bakın ne oldu.

“Noldu Hafız, Python hata yapmaz diyordun?” diyenleriniz olacaktır mutlaka. Nitekim 29’u 2’yle çarpacakken 101’le çarptı sanki Python Bey. Yoksa 2’yle çarptı da biz mi anlamıyoruz? Cevap veriyorum: ikincisi. Evet, 29, 2’yle çarpıldı ve cevap 2929 çıktı. Ama bu bildiğimiz sayıları çarpma işlemi değildi. “29” kelimesi 2’yle çarpıldı, yani 2 tane “29” string’i uç uca eklendi. Ama daha önceden sayıları toplayıp çarpıyoduk, hiç böyle olmuyordu. Neden şimdi böyle oldu? Çünkü Python 29’u kaydettiğimiz yas değişkenini bir integer yerine string olarak algıladı. Yani Python için yas değişkenin o andaki manası 29 sayısı değil, 29 kelimesiydi. Çünkü input() fonksiyonunu sonucu her zaman string oluyordu.

Uzun lafın kısası, 101 dersi kadar öğretici bir hata yaptık dostlar. Python Bey’in değişkenleri nasıl algıladığını ve farklı değişken çeşitlerinin nasıl işleme alındığını gördük. Mesela benzer bir işlemi input() fonksiyonunu kullanmadan yapalım. 29’u önce string sonra integer olarak verelim Python’a. Bakalım ne olacak?

yas = "29"
yasin_iki_kati = yas * 2
print(yasin_iki_kati)
yas = 29
yasin_iki_kati = yas * 2
print(yasin_iki_kati)

Şahane değil mi? Peki şimdi bizim kullanıcıdan aldığımız yaş girdisini nasıl 2’yle çarpacağımıza dönelim. Madem yaşımızı Python bir string olarak algılıyor. Onu önce alalım bir integer’a çevirelim. Sonra çarpalım. Nasıl fikir? Hatırlarsınız bir float’u str() fonksiyonuyla string’e dönüştürmüştük. Şimdi tersini yapıp bir string’i bir integer’a dönüştüreceğiz. Onu da int() fonksiyonuyla yapacağız. İşte böyle:

string_yas = input("Yasiniz?")
integer_yas = int(string_yas)
yasin_iki_kati = integer_yas * 2
string_yasin_iki_kati = str(yasin_iki_kati)
yazilacak_cumle = "Yasinizin 2 kati " + string_yasin_iki_kati
print(yazilacak_cumle)

Değişkenleri birbirlerine çevirmek için iki satır daha ekledik ve her şey yoluna girdi.


Ödev 3.1: Kullanıcıdan iki defa sayı girmesini isteyen, sonra o sayıları çarpıp ekrana bu cümleyi yazan bir program yazın. “Birinci girdiğiniz sayı [buraya birinci sayı gelecek], ikinci girdiğiniz sayı [buraya ikinci sayı gelecek], bu sayıların çarpımı da [buraya çarpım gelecek].”


Az zamanda çok önemli fonksiyonlar öğrendik dostlar. Fonksiyonlar konusunu ileride daha derinden işleyeceğiz fakat daha derinlere inmeden öğrendiklerimizi bir özetleyelim.

  • print(): Verdiğimiz değişkeni string, float, integer, boolean olmasına farketmeden ekrana değerini yazar.
  • str(): Integer ve float değişkenleri alır string’e dönüştürür.
  • int(): String değişkenleri alır integer’a dönüştürür.
  • input(): Kullanıcının ekrana girdiği yazıyı bir string’e dönüştürür.

Şimdi biraz fonksiyona benzeyen ama çok daha enteresan işler beceren yeni bir şey öğrenelim. Ama o işi bir sonraki dersimize bırakalım. Dersi kapatmadan bir önceki dersin ödev çözümleri:


Ödev 2.1 çözüm

x = 49.25 * 49.25 * 49.25 - 2 / 5.27
print(x)

Ödev 2.2 çözüm

yazmak_istedigim_cumle = "a'nın su anki degeri " + str(a) + ", y’ninki de " + str(y)

Ödev 2.3 çözüm

yazmak_istedigim_cumle = "a'nın su anki degeri " + str(a) + ", y’ninki de " + str(y) + ", bu esnada z’ninki de " + z

Ödev 2.4 çözüm

yazmak_istedigim_cumle = "a’yi y’ye bolersek " + str(a/y) + " cikiyor"

Ödev 2.5 çözüm

x = 43 * 43 * 43 * 43 * 43
y = 24 * 24 * 24 * 24 * 24 * 24
z = x > y
print(z)

The following two tabs change content below.

Hafız Lakyab

BNGL'nin ilk zamanlarında şakalı komiklikli yazılarını esirgemeyen Hafız son zamanlarda yatış pozisyonuna geçerek yattığı yerden Civilization’dır, Europa Universalis’tir oyunlara sardırmıştır. Eğer bir gün dünyayı ele geçirebilirse uzmanı olmadığı konularda yazılarına devam edecektir. Ayrıca, şarkıları tersten söyleyebildiğini biliyor muydunuz?

One thought on “Bana kod yazmayı öğret baba – Bölüm 3

  • 19 Aralık 2018 at 23:10
    Permalink

    Merhaba. Bilgisayarla olan muhabbeti Google amcadan öteye gitmeyen bana iki üç satır kod yazdırdınız. Gerçekten Bilal’e anlatır gibi anlatmışsınız. Kendi kendime ödevlerle uğraştım, çözebildiğimi görünce mutlu oldum falan… Tebrik ediyorum ve yazıların devamını dört gözle bekliyorum.

    Reply

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.