Python’da Kullanıcıdan Bilgi (Veri) Alma Input( ) Fonksiyonu

Merhaba

Python Dersleri serisinin bu dersinde Kullanıcıdan bilgi almay(input) ve tip dönüşümlerini inceleyeceğiz.
Python da şuana kadar dışarıya output işlemleri yani dışarıya aktarım işlemleri yaptık bu dersimizde ise dışarıdan bilgi almayı ve bu bilgiler ile bazı işlemler yapacağız. Peki bunu nasıl yapacağız adından da anlaşılacağı gibi bu işlemi input() fonksiyonu ile yapacağız bir önceki derslerimizde fonksiyon kavramına biraz giriş yapmıştık ve print() fonksiyonunu işlemiştik eğer o derse bakmadıysanız buradan ulaşabilirsiniz.

Kullanıcıdan Bilgi Alma input() :

input() fonksiyonu kullanımını en basitinden kullanıcıdan isim alarak gösterelim.

print(input("İsminizi Giriniz :"))

Çıktı

İsminizi Giriniz :Yusuf
Yusuf

Yukarıdaki örneğin aynısını bu sefer input’tan gelen veriyi bir değişkene depolayarak yapalım. Bu en kullanışlı yöntem olacaktır. Yukarıdaki yöntem çok nadir kullanılmaktadır.

isim = input("İsminizi Giriniz :")
print(isim)

Çıktı

İsminizi Giriniz :Emir
Emir

Yukarıdan görüldüğü gibi kullanıcıdan bir isim bilgisi aldık. Önceki derslerimizde işlediğimiz print() fonksiyonu ile aldığımız bilgiyi ekrana yazdırdık.

Kullanıcıdan alınan bilginin yanına “Merhaba” mesajını ekleyen bir uygulama yapalım.

isim = input("İsminizi Giriniz :")
print("Merhaba",isim)

#F String Yöntemi ile yazdırma
print(f"Merhaba {isim}")

Çıktı

İsminizi Giriniz :Ayşe
Merhaba Ayşe

Yukarıdaki örnekte sabit olarak yazılacak mesajı çift tırnaklar ( ” ” ) arasına alarak yazdık ve daha sonra virgül koyarak değişkeni yanına yazdık.

“Merhaba” verisi sabit bir veriyken isim değişkeni içerisindeki veri değişken bir veridir. Her bir veri birbirinden ayrılması için virgül (,) kullanılır.

Şimdi de Kullanıcıdan iki veri alalım ve alınan verileri toplayalım. Acaba doğru hesaplayacak mı yoksa bir aksilik mi olacak? Hemen deneyelim…

sayi1 = input("Birinci sayıyı girin :")
sayi2 = input("İkinci sayıyı girin :")

topla = sayi1+sayi2
print(f"Toplam: {topla}")

Çıktı

Birinci sayıyı girin :15
İkinci sayıyı girin :20
Toplam : 1520

Görüldüğü gibi 1520 sonucu aldık aslında bu iki sayının toplamı değil 15 ve 20 sayılarının yan yana yazılışını verdi.

Yani String türünde aldı sayıları, peki biz Integer(tamsayı) türündeki verileri nasıl dışarıdan alacağız ve dışarıdan aldığımız yada işlem yaptığımız verinin en önemlisi türünü nasıl bileceğiz.

O zaman şöyle bir not düşelim hemen;

input() fonksiyonu ile sadece String(metinsel) veri türlerini kullanıcıdan alabiliyoruz.

İşte bu sorunun öncesinde size bir type() fonksiyonundan bahsedelim.

type() fonksiyonu :

Bize verinin tipini veren fonksiyondur. Kullanımı nasıl hemen bakalım.

metin = "Bilişim Hocam"
print( type(metin) )

ÇIKTI

<class 'str'>

olacaktır.

sayi = 20
print( type(sayi) )

ÇIKTI

<class 'int'>

Peki sayıyı çift tırnaklar arasında yazıp değişkenin içerisine atarsak ne olacaktır? Deneyelim…

sayi = "20"
print( type(sayi) )

ÇIKTI

<class 'str'>

NOT: Sayı gibi görünse de çift tırnaklar arasında yazıldığı için program onu sayısal bir veri olarak değil de metinsel bir veri olarak algılayacaktır.

sayi = 25

print("sayi değişkenin tipi",type(sayi))

ÇIKTI

sayi değişkenin tipi <class 'int'>

gördüğünüz gibi verinin türü Integer (tam sayı)

str( ) – int( ) ve float( ) Fonksiyonları

Programlamada verileri ihtiyaca göre farklı veri tiplerine çevirmemiz gerekebilir bu durumda bazı fonksiyonları kullanmamız gerekir. Örneğin input( ) fonksiyonu her seferinde metinsel bir bilgi verir. Eğer matematiksel işlemler yapılacaksa inputtan alınan bilgi sayısal veriye çevrilmesi gerekir. Ya da ondalıklı işlemler yapılacaksa ondalıklı sayıya, ya da sayısal bir veriyi metne çevirmek gerekiyorsa da metinsel veriye çevirme fonksiyonları kullanılır.

str( ) : İçerisine yazılan veriyi ya da değişken içerisindeki veriyi Metine (string (str) ) çevirir.

int( ) : İçerisine yazılan veriyi ya da değişken içerisindeki veriyi Tam Sayıya (integer (int) ) çevirir.

float( ) : İçerisine yazılan veriyi ya da değişken içerisindeki veriyi Ondalıklı Sayıya (float) çevirir.

Bir verinin türünü nasıl öğreneceğimizi öğrendiğimize göre şimdi tip dönüşümlerine geçelim.

İlk olarak Integer türünde ki veriyi String tipine dönüştürelim

sayi =25
sayi= str(sayi)
print("sayi değşkenin tipi",type(sayi))

ÇIKTI

sayi değşkenin tipi <class 'str'>

görüldüğü gibi sayı değişkeni artık bir Integer değil bir String değişken türü oldu.

Kullanıcıdan iki sayı isteyelim. Bu sayıları toplayıp sonucu ekrana yazdıralım.

s1 = int( input("1. sayıyı giriniz:") )
s2 = int( input("2. sayıyı giriniz:") )
t = s1+s2
print("Toplam:",t)

ÇIKTI

1. sayıyı giriniz:15
2. sayıyı giriniz:20
Toplam: 35
rakamlar="1234567890"

print("rakamlar değişkenin tipi",type(rakamlar))

rakamlar = int(rakamlar)

print("rakamlar değişkenin tipi",type(rakamlar))

ÇIKTI

rakamlar değişkenin tipi <class 'str'>
rakamlar değişkenin tipi <class 'int'>

Görüldüğü gibi String türündeki verileri de Integer türüne dönüştürebiliyoruz peki bütün String türündeki veriler Integer türüne dönüştürebiliyor muyuz gösterelim hemen;

metin ="Merhaba Dünya"
metin = int(metin)
print(metin)

ÇIKTI

Traceback (most recent call last):
File “C:/Users/yusuf/AppData/Local/Programs/Python/Python310/ornek.py”, line 2, in
metin = int(metin)
ValueError: invalid literal for int() with base 10: ‘Merhaba Dünya’

Az çok İngilizce bilginiz varsa hatanın ne olduğunu hemen anlarsınız. Hata vermesinin sebebi girilen metin değişkeninin karakterleri Integer türü dışında karakter olduğu için hata verdi yani siz sadece [0-9] arasındaki karakterleri Integer türüne dönüştürebilirsiniz.

Dışarıdan veri almayı öğrendiğimize göre ufak bir örnek ile input() fonksiyonu konusunu bitirelim;

Dışarıdan dairenin yarıçapını alıp ona göre dairenin çevresini ve alanını hesaplayan uygulamayı yapalım;

"""
Dairenin Yarıçapını ve Alanını Hesaplayan program
"""

yari_cap = int(input("Dairenin yarıçapını giriniz :"))
pi = 3.14

cevre = 2*pi*yari_cap # cevre hesapladık
alan = pi*(yari_cap**2) # alan hesapladık

print("Dairenin Çevre Uzunluğu :",cevre)
print("Dairenin alanı :",alan)

ÇIKTI

Dairenin yarıçapını giriniz :15
Dairenin Çevre Uzunluğu : 94.2
Dairenin alanı : 706.5

Başka bir örnek;

isim = input("İsminiz :")
yas = input("Yaşınız :")

print("Merhaba",isim,"bey yaşınız",yas,"hala çok gençsiniz")

ÇIKTI

İsminiz :Ahmet
Yaşınız :23
Merhaba Ahmet bey yaşınız 23 hala çok gençsiniz

Göründüğü gibi çıktıyı çok güzel şekilde aldık ama karakter dizisi oldukça karışık oldu. Ayrıca boşlukları falan ayarlamak oldukça zor oldu. Bunun için Python bize çok güzel bir imkan sağlıyor “format()” metodu hemen
kullanımına geçelim.

format() Metodu:

isim = input("İsminiz :")
yas = input("Yaşınız :")

print("Merhaba {} bey yaşınız {} hala çok gençsiniz".format(isim,yas))

Aynı işi çok daha kolay ve sade bir şekilde yaptık format() metodu süslü parantezleri yerine sırasıyla aldığı parametreleri aldı ve burada dikkat etmemiz gereken şey; süslü parantez ile format() metodunun aldığı parametrelerin sıralaması aynı olması. Yukarıdaki örneğin aynısını F String yöntemini kullanarak da yapabilirsiniz o da şu şekilde olacaktır;

F String Yöntemi

isim = input("İsminiz :")
yas = input("Yaşınız :")

print(f"Merhaba {isim} bey yaşınız {yas} hala çok gençsiniz")

ÇALIŞMA UYGULAMALARI

Uygulamaları kaydederken uygulama isimlerine göre kayıt edin. Örneğin 1. Uygulama Kütüphane Kitap Takibi.py şeklinde kayıt edilmelidir.

1- Kütüphane Kitap Takibi

Kullanıcıdan aldığınız kitap adı ve sayfa sayısını kullanarak, “___ adlı kitap ___ sayfa sayısına sahiptir.” formatında bir çıktı verin.

2- Pasta Dilimi Hesaplama

Bir pastanın kaç dilime ayrılacağını kullanıcıdan alın ve her bir öğrenciye düşen pasta dilimi sayısını hesaplayın. Toplam öğrenci sayısı 10 olarak varsayın.

3 – Yaş Hesaplama

Kullanıcıdan doğum yılını alıp, kullanıcının şu anki yaşını hesaplayın. (Şu anki yılı varsayılan olarak alın.)

4- Uzunluk Dönüştürücü

Kullanıcıdan santimetre cinsinden bir uzunluk alın ve bunu metre cinsine dönüştürün.

5- Not Ortalaması Hesaplama

Öğrenciden Matematik, Fen ve Türkçe derslerinin notlarını alarak ortalamasını hesaplayın ve ekrana yazdırın.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

error: Content is protected !!