Ana içeriğe atla

Python'da raw_input() ve input() Metotları

Şimdiye kadar tek yönlü yani kullanıcıdan veri girişi almadan çalışmalar yaptık. Bu günkü yazımızda kullanıcıdan veri girişi alan metotlar üzerinde duracağız.

raw_input(): bu komut ile kullanıcıdan karakter verilerini alabiliyoruz.
input(): bu komut ile de kullanıcıdan sayısal verilerini alabiliyoruz.

Bunlarla ilgili aşağıya yüklediğim çalışmaları inceleyebilirsiniz.

Örnek kodlar için..

Güvenlik Açısından input() ve raw_input()

Python’da kullanıcıdan veri alabilmek için input() ve raw_input() adlı iki farklı fonksiyondan faydalanıyoruz. Bu iki fonksiyonun kendilerine has görevleri ve kullanım alanları vardır. Ancak eğer yazdığınız kodlarda güvenliği de ön planda tutmak isterseniz input() fonksiyonundan kaçınmayı tercih edebilirsiniz. Çünkü input() fonksiyonu kullanıcıdan gelen bilgiyi bir komut olarak algılar. Peki, bu ne anlama geliyor?
Örneğin, toplama işlemi için bir kod yazdığınızı düşünün iki sayıyı gönderdiğinizde input() metodu bunu komut olarak algıladı ve işlem gerçekleştirdi. Bu ilk bakıldığında sevimli görünse de tehlikeli bir özelliktir. Programı tekrar çalıştığımızı düşünelim ve aşağıdaki kodu input yerine yazdığımızı düşünelim.

 " eval("__import__('os').system('rm bir_dosya')")"

Hatta bu satır, şimdi burada göstermek istemediğimiz, çok daha yıkıcı sonuçlar doğurabilecek sistem komutlarının çalıştırılabilmesini sağlar (bütün sabit diski silmek gibi...). Dolayısıyla eğer özellikle sunucu üzerinden çalışacak kodlar yazıyorsanız input() fonksiyonunu kullanırken dikkatli olmalısınız.
input() fonksiyonunun yukarıdaki risklerinden ötürü Python programcıları genellikle bu fonksiyonu kullanmamayı tercih eder. Bunun yerine her zaman raw_input() fonksiyonu kullanılır. Zaten raw_input() fonksiyonu kullanıcıyla veri alış-verişine ilişkin bütün ihtiyaçlarımızı karşılayacak özelliktedir. Ancak biz henüz raw_input() fonksiyonunu tam kapasite kullanacak kadar bilgi sahibi değiliz. İleriki yazılarda eksik bilgilerimizi de tamamladıktan sonra input() fonksiyonuna hiç ihtiyacınız olmadığını göreceksiniz.

Python serisindeki diğer yazılarımızda görüşmek üzere, hoşçakalın. :)

Yorumlar

Bu blogdaki popüler yayınlar

Algoritma Kavramı, Sözde Kod ve Akış Diyagramı

Bu yazımda çoğumuzun amelelik gibi gördüğü fakat belki de en önemli konu hakkında kısaca bilgi vermek istiyorum. Bundan sonra küçük örneklerle kod yazmayı arttıracağız. Programlama dillerinden bahsetmiştik geçenlerde. Yüksek seviyeli veya düşük seviyeli diller olsun hepsinin arasında kullanım farkları haricinde çok bir farkılılık yoktur. Hayatımızda kullandığımız koca koca programları, programlama dilleri değil onları hazırlayan algoritma kaynağı oluşturur. Kısaca algoritma kavramını tanımlarsak; Algoritma, belli bir problemi çözmek veya belli bir amaca ulaşmak için çizilen yoldur. Algoritma proglamlamada kullanılan en güzel tekniktir. Neyi nasıl yapacağımızı planlamamızı sağlar. Algoritmayı oluşturanda sözde kod ve akış diyagramlarıdır. ALGORİTMA ÖRNEĞİ(resim1) Sözde Kod:Yapacağımız algoritmayı kısa olarak sözle tanımlama yöntemidir. Örneğin; İki sayının toplamını veren algoritmanın sözde kodunu yazınız. 1)BAŞLA 2)YAZ(“1.sayiyi giriniz:”) 3)OKU(S1) 4)YAZ(“2.sayiyi g...

Örnek Algoritmalar ve Örnek C++ Kodları

Örneklerimize bu başlığımız altında devam ediyoruz arkadaşlar. :) Yıl başına kadar C++ hakkında bildiğim tüm konuları ve yaptığım projeleri sizlerle paylaşacağım. Sorularınızı yorumlarda bekliyorum. Şimdiden kolay gelsin :) Algoritma 5: Yarıçapı klavyeden girilen kürenin yüzey alanını ve hacmini açıklayan algoritmanın C++ kodunu yazınız.(π=3) #include <iostream> using namespace std; int main() { float r,alan,hacim; cout<<“Yaricapi giriniz:”; cin>>r; alan=4*3*r*r; hacim=(4*3*r*r*r)/3; cout<<“Alan:”<<alan<<endl; cout<<“Hacim”<<hacim<<endl; } Algoritma 6: Katsayıları klavyeden girilen birinci dereceden denklemin kökünü bulan algoritmanın C++ kodunu yazınız. #include <iostream> using namespace std; int main() { int a,b,c,x; cout<<“Katsayilari giriniz:”; cin>>a>>b>>c; x=(c-b)/a; cout<<“Kok:”<<x; } Algoritma 7:Klavyeden yarıçapı ve dilim açısı girilen daire diliminin...

Hayatımıza Birbirinden Farklı Çözümler Sunan Problemler: Algoritmalar

Merhaba arkadaşlar, Başlıktandan anlayacağınız gibi, hayatımıza birbirinden farklı çözümler sunan problemler topluluğu olarak algoritmayı tanımlayabilirim. Bu yazı serimizde algoritmaları tek tek tanıyıp çalışma mantıklarını inceleyen analiz eden, birden farklı çözümleri karşılaştırarak gerekirse kendimizde çözümler üretebileceğimiz bir seri yaratacağız. Algoritmalar bilmece bulmaca gibidir. Üzerinde düşündüğünde ufkunuzu açar. Bu seriyi hazırlama sebebimde ufkunuzu biraz olsun açmak oldu. Bu seriye başlamadan önce bir algoritmayı tanımlarken kullanacağımız terimleri tanıtmak istiyorum. Ayrıca algoritmaların pseudo kodlarıyla Java kodlarını da paylaşacağım. Belki Swift ile olan kodlarını da paylaşabilirim. ;) Ayrıca bu kodların toplu halde github hesabımdan erişim sağlayabilirsiniz. Şimdi algoritma dünyasını daha derinden tanıyalım. Algoritma nedir? Bir problemi çözmek için işlenen komutlar kümesine, algoritma nedir. Çözülebilir Problem nedir? Bir problem için algoritma oluşt...