Merhaba Python input() ile kullanıcıdan veri almak yazısını okuyan ziyaretçi! :)

Önceki yazımda hatırlarsan Python dosyaları hakkında bir kaç bişiy öğrenmiştik :) Python Dosyası Oluşturmak ve Çalıştırmak yazısını buradan yada yandaki yeşil yeşil olan yazıya tıklayarak okuyabilirsin.

Başlıktan da anlayacağın üzere, input() fonksiyonu kullanıcıdan veri almamızı sağlıyor. Diğer bir değişle kodu çalıştırana bir soru soruyoruz, cevabı alınca alınan cevabı işliyoruz.

Python2'de raw_input() ve input() olarak 2 farklı veri alma yöntemi vardı;
raw_input() string için, input() ise integer için kullanılıyordu. Python3'de tek bir fonksiyonu tüm veri tipleri için kullanabiliyoruz.

Bu yazımdaki işlemleri, Python dosyası ile yapacağız. Bir Python dosyası oluştur lütfen ve alttaki başlığı oku :)

input() Fonksiyonu

Python dosyamıza aşağıdaki satırı ekle.

isim = input('Adınız nedir?:')
Bu satırla, isim adında bir input() oluşturdun. Girilen değer, isim değişkenine atanacak. Bu satır kendi başına bir şey ifade etmeyecek ve değer girsen dahi ekrana yazmayacak,

print() ile girilen değeri ekrana yazarsın.
print (isim)

Son hali aşağıdaki gibi olmalı.
#!/usr/bin/env python
# -*- coding: utf-8 -*-

isim = input('Adınız nedir?:')
print (isim)

Çalıştırdığımızda aşağıdaki soru karşılayacak.
Adınız nedir?:
İsmini buraya yazıp, Enter tuşuna bastığında, yazdığın ismin alt satırda olduğunu görebilirsin :)


Veri Tipi Dönüştürücüleri

Yazının başlarında söylediğim gibi, input() ile tüm veri tiplerini tek bir fonksiyon ile girebiliyoruz. Girilen veriyi, işlemimize göre veri tipine dönüştürmemiz gerekebilir.

Örneğin aşağıdaki satırları incele ve işlemi tahmin etmeye çalış.
#!/usr/bin/env python
# -*- coding: utf-8 -*-

isim = input('sayı:')
print (isim + 2)
Kod satırlarına göre, girilen sayıya 2 eklenip, ekrana yazdırılması gerekir..
Kodu çalıştırıp ekrana yazdırmaya çalıştığımızda bizi karşılayan hata mesajına selam ver :)
sayı:2
Traceback (most recent call last):
  File "/home/Nil/Desktop/python3.py", line 5, in <module>
    print (isim + 2)
TypeError: must be str, not int
TypeError: hatamızdan da anlayacağımız üzere, integer yok :) isim değişkeninin integer olduğunu belirtmemiz gerekiyor. Bunu nasıl yapacağını veri tipleri yazısında anlatmıştım.

Ya yeni bir değişken oluşturur, bu değişkenle veri tipini belirtirsin.
yeni = int(isim)

Yada print() içinde değişkeni parantez içine alarak belirtirsin. Genellikle kullandığım yöntem budur :)
print (int(isim) + 2)

Son hali aşağıdaki gibi olmalı.
#!/usr/bin/env python
# -*- coding: utf-8 -*-

isim = input('sayı:')
yeni = int(isim)
print (yeni + 2)
# Ya da
# print (int(yeni) + 2)

Şimdi çalıştırıp sonuca bakalım.
sayı:9
11


Diğer veri tipleri içinde aynı adımları izleriz. Hepsini anlatarak yazıyı uzun tutup, sizi korkutmak ve de yormak istemiyorum :)


eval() Fonksiyonu

Adettendir, programlama dilini öğrenirken herkes hesap makinesi yapar :) Kısmen hesap makinesi yapacağız şimdi.

eval() fonksiyonunun görevi, girilen değerleri işlemektir. Bu konuyu örnek üzerinde anlatacağım.
#!/usr/bin/env python
# -*- coding: utf-8 -*-

islem = input('işlem:')
print (islem)
Bakıldığında 2+2 dediğimizde sonucun 4 etmesi gerekiyor.

işlem:2+2
2+2
Çıktıya baktığımızda str() olarak algılanmış ve 2+2 şeklinde yazdırılmış. Veri tipini integer'e dönüştürsek sonuç değişir mi peki? Hayır değişmez.

İşte burada, yani input() içine girilen işlemi yaptırmak için eval() kullanmak gerekiyor. eval(), input() içindeki matematiksel işlemi algılıyor ve işlemi gerçekleştiriyor dersem yanlış tarif etmiş olmam.

Aynı şekilde yeni bir değişkene değeri atayabilir yada print() içinde eval() kullanabilirsin.
#!/usr/bin/env python
# -*- coding: utf-8 -*-

islem = input('işlem:')
print (eval(islem))

Çıktısı ise şöyledir.
işlem:5+10
15


input() ile anlatacaklarım bu kadar. Sonraki yazılarımın herhangi birinde girilen değerlin tamamını küçük harfe çevirmeyi yada büyük harfe çevirmeyi anlatacağım.

Bir sonraki yazımda görüşünceye dek hoşçakal!