Python’da raw_input & input fonksiyonları ile veri girişi

Geçen yazılarda pythonla verileri ekrana nasıl yazdıracağımızı ve değişkenlere aktaracağımızı öğrenmiştik, şimdide veriyi programa göndererek işlenmesini sağlayacağız. Yani artık oturup programın birşeyler yapmasını izlemek yerine yazdığımız programla etkileşime geçeceğiz.

Öncelikle raw_input ve input komutlarından biraz bahsedelim, bu iki komutun ortak özelliği verilerin dışarıdan alınmasını sağlamaktır fakat kullanım alanları dolayısıyla birbirinden ayrılırlar. Şöyleki; raw_input komutu genelde string verilerin alınması için kullanılırken input komutu sayısal değerlerin alınması için daha uygundur. Şöyle ufak bir örnekle açıklamak gerekirse;

#!/usr/bin/env python
# -*- coding: utf-8 -*-

isim = raw_input('Adınız:')
yas = input('Yaşınız:')
print isim,yas,'yaşındadır.'

Çıktısı;

Screen shot 2013-09-11 at 6.55.26 AM

Yukarıda yaptığımız şeyi satır satır açıklayalım;
1.Satırda python PATH tanımlamamızı yaptık.
2.Satırda Türkçe karakterleri kullanabilmek için gerekli karakter setini çağırıyoruz.

4.Satırda kullanıcının ‘Adınız’ sorusuna verdiği yanıtı isim adlı değişkene eşitliyoruz.
5.Satırda kullanıcının ‘Yaşınız’ sorusuna verdiği yanıtı yas adlı değişkene eşitliyoruz.
6.Satırda print komutunu kullanarak isim ve yas adlı değişkenlerimizi ekrana yazdırıyoruz.

Evet örneğimizde input komutunu sayısal işlemlerde raw_input komutunu ise string işlemlerinde kullandık, aksi taktirde programımız hata verecektir. Aşağıdaki örneği ele alalım;

#!/usr/bin/env python
# -*- coding: utf-8 -*-

isim = input('Adınız:')
yas = input('Yaşınız:')
print isim,yas,'yaşındadır.'

Üstteki programda değişiklik yaparak raw_input yerine input yazdık ve tahmin edebileceğiniz gibi ‘Adınız’ sorusuna sayısal bir yanıt vermediğimiz için aşağıdaki hata ile karşılaştık.

Screen shot 2013-09-11 at 7.27.22 AM

Aslında raw_input komutunu kullanarak ikisinin işini tek komutla halledebiliriz, şöyleki; raw_input komutuyla aldığımız veri bir sayı dahi olsa raw_input bunu bir string değeri olarak algılar ve bu da sayı ile matematiksel işlemler yapmamızı engeller. Bu nedenle aldığımız sayı degerlerini sonradan integer değerine çevirmek için int() komutunu kullanacağız.

#!/usr/bin/env python

# -*- coding: utf-8 -*-

sayi1 = raw_input('İlk sayı:')

sayi2 = raw_input('İkinci sayı:')

print int(sayi1)+int(sayi2)

Örneğimizde iki sayıyı raw_input kullanarak aldık ve bu sayıları toplatarak aşağıdaki şekilde bir çıktı elde ettik;

Screen shot 2013-09-11 at 8.15.17 AM

Konu hakkında soru ve yorumlarınızı yorum bölümünden iletebilirsiniz.