Input Fonksiyonundan Gelen Metinsel Veriyi Sayısal Verilere Çevirme

Merhaba. Daha önceki derslerimizde input konusunu detaylı işlemiştik. Fakat anlaşılmayan ve sürekli hatalarla karşılaşılan bir durumla ilgili üzerinde daha fazla durmamız gerektiğini farkettim. Bunun için sizlere input’tan gelen bilgilerle neden sayısal işlemler yapılamadığını bu yazıda anlatacağım. Şimdi dersimize geçelim.

Öncelikle basit bir uygulamayla başlayalım. Örneğin kullanıcıdan bir sayı alalım ve bu sayıyı kendisiyle toplasın. Ama bu işlemi olduğu gibi sadece input kullanarak yapalım ve sonucu görelim;

sayi = input("Sayı Giriniz:")
print(sayi+sayi)

ÇIKTI

Sayı Giriniz:5
55

5 sayısı kendisiyle toplandığında 10 sonucu üretilmesi gerekirdi. Peki neden 55 yazdı ?

Çünkü input fonksiyonu her zaman metinsel değer döndürür. Bu yüzden metinsel değerler birbirleriyle toplandığında yanyana getirilir.

Peki bu sorunu nasıl çözeceğiz?

Eğer tam sayılarla işlem yapacaksak, Kullanıcıdan sadece tam sayı alacaksak o zaman input( ) fonksiyonuyla inputtan alınan veriyi tam sayıya çevirmeliyiz. Yukarıdaki örneği doğru hesaplayacak şekilde yapalım.

sayi = input("Sayı Giriniz:")
print( int(sayi) + int(sayi) )

ÇIKTI:

Sayı Giriniz:5
10

Yukarıdaki örnekte değişkenleri int( ) fonksiyonu içerisine alarak programın bu değişkenleri metinsel değil tam sayı olarak algılamasını sağlar.

Şu şekilde de yapabilirdiniz:

sayi = int( input("Sayı Giriniz:") )
print(sayi+sayi)

Yukarıdaki örnekten farkı, başlangıçta alınan bilgiyi çevirip değişkenin içerisine atadık. Bu sayede her değişken kullanımında tekrar tekrar int( ) fonksiyonunu kullanmaya gerek kalmayacaktır.

Başka bir örnek daha yapalım. Örneğin kullanıcıdan iki sayı alalım bunların toplamını, çarpımını,farkını ve bölümünü hesaplasın.

s1 = int( input("1.Sayı:") )
s2 = int( input("2.Sayı:") )

t = s1+s2
f = s1-s2
c = s1*s2
b = s1/s2

print("Toplama Sonucu:",t)
print("Çıkarma Sonucu:",f)
print("Çarpma Sonucu:",c)
print("Bölme Sonucu:",b)

ÇIKTI

1.Sayı:50
2.Sayı:10
Toplama Sonucu: 60
Çıkarma Sonucu: 40
Çarpma Sonucu: 500
Bölme Sonucu: 5.0

Yukarıdaki örnekte kullanıcı 50 ve 10 sayılarını girdi ve bunların sonucunu tek tek hesaplayıp ekrana yazdırdı. Eğer inputtan alınan bilgiler int( ) fonksiyonu içerisine yazılmasa muhtemel şu şekilde bir hata verecekti.

1.Sayı:50
2.Sayı:10
Traceback (most recent call last):
  File "C:/Users/Pc10/AppData/Local/Programs/Python/Python310/app.py", line 4, in <module>
    f = s1-s2
TypeError: unsupported operand type(s) for -: 'str' and 'str'

Çünkü metinsel verilerle çarpma,bölme,çıkarma gibi matematiksel işlemler ya-pı-la-maz.

INPUTTAN GELEN VERİYİ ONDALIKLI SAYIYA ÇEVİRME

inputtan gelen veriyi ondalıklı sayıya çevirelim. Bunun içinde yine int( ) fonksiyonuna benzer kullanıma sahip olan float( ) fonksiyonuyla yapacağız.

s1 = float(input("1.Sayı:")) 
s2 = float(input("2.Sayı:") )

t = s1+s2

print("Toplama Sonucu:",t)

ÇIKTI:

1.Sayı:10.4
2.Sayı:15.3
Toplama Sonucu: 25.7

Başka bir örnek daha yapalım. Örneğin 3 öğrenciden boyları metre cinsinden ondalıklı olarak istensin. (Örneğin 1.83) ve bu öğrencilerin boy ortalamasını hesaplayan programı yapalım.

o1 = float(input("1.Öğrencinin Boyu:")) 
o2 = float(input("2.Öğrencinin Boyu:"))
o3 = float(input("3.Öğrencinin Boyu:"))

ortalama = (o1+o2+o3) / 3
print("Öğrencilerin boy ortalaması",ortalama)

ÇIKTI:

1.Öğrencinin Boyu:1.65
2.Öğrencinin Boyu:1.54
3.Öğrencinin Boyu:1.58
Öğrencilerin boy ortalaması 1.5899999999999999

Bir yanıt yazın

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

error: Content is protected !!