A
B
C
Ç
D
E
F
G
Ğ
H
I
İ
J
K
L
M
N
O
P
R
S
Ş
T
U
Ü
V
Y
Z
Q
W
X
+ Ekle
Python Kullanıcıyla iletişim(raw_input(), input() fonksiyonları)

Python Kullanıcıyla iletişim(raw_input(), input() fonksiyonları) Kullanıcıyla İletişim: Veri Alış-Verişi

Python"da kullanıcıdan birtakım veriler alabilmek, yani kullanıcıyla iletişime geçebilmek için iki tane fonksiyondan faydalanılır. Bunlardan öncelikle ilkine bakalım:

a rel="nofollow" >
raw_input() fonksiyonu

Bu fonksiyon yardımıyla kullanıcıların veri girişi yapmasını sağlayabiliriz. Hemen bununla ilgili bir örnek verelim. Öncelikle boş bir kwrite belgesi açalım. Her zaman yaptığımız gibi, ilk satırımızı ekleyelim belgeye:

#!/usr/bin/env python

Şimdi raw_input fonksiyonuyla kullanıcıdan bazı bilgiler alacağız. Mesela kullanıcıya bir şifre sorup kendisine teşekkür edelim...:

#!/usr/bin/env python
raw_input("Lütfen parolanızı girin:")
print "Teşekkürler!"

Python yazdığımız kodlar içindeki Türkçe karakterler nedeniyle bize bir uyarı mesajı gösterecektir. Bu uyarı mesajını görmek istemiyorsak, programımızın içine şöyle bir kod eklememiz gerekiyor:

# -*- coding: latin-1 -*-

Böylelikle kullandığımız karakter tipini Python"a tanıtmış oluyoruz. Programımızın en son hali şöyle olacak:

#!/usr/bin/env python



# -*- coding: latin-1 -*-
raw_input("Lütfen parolanızı girin:")
print "Teşekkürler!"

Şimdi bu belgeyi "deneme.py" ismiyle kaydediyoruz. Daha sonra bir konsol ekranı açıp, programımızın kayıtlı olduğu dizine geçerek şu komutla programımızı çalıştırıyoruz:

python deneme.py

Tabii ki siz isterseniz daha önce anlattığımız şekilde dosyaya çalıştırma yetkisi vererek ve gerekli düzenlemeleri yaparak programınızı doğrudan ismiyle de çağırabilirsiniz. Bu sizin tercihinize kalmış..

İsterseniz şimdi yazdığımız bu programı biraz geliştirelim. Mesela programımız şu işlemleri yapsın:

Program ilk çalıştırıldığında kullanıcıya parola sorsun Kullanıcı parolasını girdikten sonra programımız kullanıcıya teşekkür etsin Bir sonraki satırda kullanıcı tarafından girilen bu parola ekrana yazdırılsın Kullanıcı daha sonraki satırda, parolanın yanlış olduğu konusunda uyarılsın
Şimdi kodlarımızı yazmaya başlayabiliriz. Öncelikle yazacağımız kodlardan bağımsız olarak girmemiz gereken bilgileri ekleyelim:
#!/usr/bin/env python
# -*- coding: latin-1 -*-

Şimdi raw_input fonksiyonuyla kullanıcıya parolasını soracağız. Ama isterseniz bu raw_input fonksiyonunu bir değişkene atayalım:

a = raw_input("Lütfen parolanızı girin:")

Şimdi kullanıcıya teşekkür ediyoruz:

print "Teşekkürler!"

Kullanıcı tarafından girilen parolayı ekrana yazdırmak için şu satırı ekliyoruz:

print a

Biraz önce raw_input fonksiyonunu neden bir değişkene atadığımızı anladınız sanırım. Bu sayede doğrudan "a" değişkenini çağırarak kullanıcının yazdığı şifreyi ekrana dökebiliyoruz.

Şimdi de kullanıcıya parolasının yanlış olduğunu bildireceğiz:

print "Ne yazık ki doğru parola bu değil"

Programımızın son hali şöyle olacak:

#!/usr/bin/env python
# -*- coding: latin-1 -*-
a = raw_input("Lütfen parolanızı girin:")
print "Teşekkürler!"
print a
print "Ne yazık ki doğru parola bu değil"

İsterseniz son satırda şu değişikliği yapabiliriz:

print "Ne yazık ki doğru parola", a, "değil"

Böylelikle, "a" değişkenini, yani kullanıcının yazdığı parolayı cümlemizin içine (ya da Python"ca ifade etmek gerekirse: "karakter dizisi içine") eklemiş olduk...

Bu "a" değişkenini karakter dizisi içine eklemenin başka bir yolu da kodu şu şekilde yazmaktır:

print "Ne yazık ki doğru parola %s değil" %(a)

Şimdi raw_input fonksiyonuna bir ara verip, kullanıcıdan bilgi almak için kullanabileceğimiz ikinci fonksiyondan biraz bahsedelim. Az sonra raw_input fonksiyonuna geri döneceğiz.

input() fonksiyonu

Tıpkı raw_input fonksiyonunda olduğu gibi, bu komutla da kullanıcılardan bazı bilgileri alabiliyoruz. Şu basit örneğe bir bakalım:

#!/usr/bin/env python
# -*- coding: latin-1 -*-
a = input("Lütfen bir sayı girin:")
b = input("Lütfen başka bir sayı daha girin:")
print a + b

Kullanım açısından, görüldüğü gibi, raw_input() ve input() fonksiyonları birbirlerine çok benzer. Ama bunların arasında çok önemli bir fark vardır. Hemen yukarıda verilen kodları bir de raw_input() fonksiyonuyla yazmayı denersek bu fark çok açık bir şekilde ortaya çıkacaktır:

#!/usr/bin/env python
# -*- coding: latin-1 -*-
a = raw_input("Lütfen bir sayı girin:")
b = raw_input("Lütfen başka bir sayı daha girin:")
print a + b

Bu kodları yazarken input() fonksiyonunu kullanırsak, kullanıcı tarafından girilen sayılar birbirleriyle toplanacaktır. Diyelim ki ilk girilen sayı 25, ikinci sayı ise 40. Programın sonunda elde edeceğimiz sayı 65 olacaktır.

Ancak bu kodları yazarken eğer raw_input() fonksiyonunu kullanırsak, girilen sayılar birbirleriyle toplanmayacak, sadece yan yana yazılacaklardır... Yani elde edeceğimiz sayı 2540 olacaktır.

Buradan çıkan sonuç şudur:

Yukarıda anlatılanlar, raw_input() fonksiyonunun, girilen verileri "karakter dizisi" (string) olarak; input() fonksiyonunun ise "tamsayı" (integer) olarak algıladığını gösteriyor. Yani eğer biz programımız aracılığıyla kullanıcılardan bazı sayılar isteyeceksek ve eğer biz bu sayıları işleme sokacaksak (çıkarma, toplama, bölme gibi...) input fonksiyonunu kullanmamız gerekiyor. Ama eğer biz kullanıcılardan sayı değil de "kelime" veya başka bir ifadeyle "karakter dizisi" girmesini istiyorsak raw_input fonksiyonunu kullanacağız. Örneğin bir hesap makinesi programı yapacaksak kullanacağımız fonksiyon input fonksiyonu olmalı. Eğer burada raw_input fonksiyonunu kullanırsak hesap makinemiz istediğimiz gibi çalışmayacak, girilen sayıları birbirleriyle toplayamayacaktır. Tıpkı bunun gibi, eğer programımız aracılığıyla kullanıcının ismini soyismini öğreneceksek, bu işlem için de raw_input komutunu kullanmamız gerekiyor. Mesela aşağıda raw_input fonksiyonuyla yazdığımız kodları siz bir de input fonksiyonuyla yazmayı deneyin:

#!/usr/bin/env python
# -*- coding: latin-1 -*-
a = raw_input("Lütfen isminizi yazın:")
b = raw_input("Lütfen soyisminizi yazın:")
print a + " " + b

Son kodu yazarken kullandığımız " " işaretinin amacı isim ve soyismi ekrana yazdırırken arada bir boşluk bırakmaktır... Aksi halde kullanıcı isim ve soyismini girdikten sonra bunlar ekranda birbirine bitişik olarak görünecektir.

Eğer bu kodları input fonksiyonuyla yazmayı denediyseniz, Python"un ilk veri girişinden sonra hata verdiğini görmüşsünüzdür. Python"un input fonksiyonuyla bu hatayı vermemesi için tek yol, kullanıcının ismini ve soyismini tırnak içinde yazması olacaktır... Ama tabii ki normal şartlarda kimseden ismini ve soyismini tırnak içinde yazmasını bekleyemezsiniz...











  Ad Soyad
  Yorum