python dersleri

Python Kullanıcıdan Bilgi Alma(input)

Merhaba Arkadaşalar,

Mobilhanem.com da 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.

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

Çıktı

İsminizi Giriniz :Mustafa
Mustafa

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.
Örneğin kullanıcıdan iki sayı alalım ve bunları toplayalım

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

topla = sayi1+sayi2
print("Toplam :",topla)

Çıktı

Birinci sayıyı girin :12
İkinci sayıyı girin :25
Toplam : 1225

Görüldüğü gibi 1225 sonucu aldık aslında bu iki sayının toplamı değil 12 ve 25 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 sorunu Öncesinde size bir type() fonksiyonundan bahsedelim.

type() fonksiyonu :

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

veya

şeklinde metin değişkenin tipini aldık  <class ‘str’>  str yani string  türünün kısaltması olduğunu verdi bize aynı şekilde diğer türleri de gösterelim;

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

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

Çıktı

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

gördüğünüz gibi verinin türü Integer

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

Çıktı

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.
Peki tam tersini yapabilir miyiz gösterelim hemen;

rakamlar="1234567890"

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

rakamlar = int(rakamlar)

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

Çıktı

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 ="Mobilhanem.com"

metin = int(metin)
metin = "Mobilhanem.com"

metin = int(metin)

Çıktı

Traceback (most recent call last):
File “C:/Users/Cahit/Desktop/Mini/DD.py”, line 3, in <module>
metin = int(metin)
ValueError: invalid literal for int() with base 10: ‘Mobilhanem.com’

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)

Çıktı

Dairenin yarıçapını giriniz :12
Dairenin Çevre Uzunluğu : 75.36
Dairenin alanı : 452.16

Görüldüğü gibi Float türünde sonuçlar olduk istersek sadece tam kısmını yani Integer türünden alalım az önce gördüğümüz şekilde yapalım;

Çıktı

Dairenin yarıçapını giriniz :12
Dairenin Çevre Uzunluğu : 75
Dairenin alanı : 452

İstediğimiz sonucu aldık fakat burada dikkat etmeniz gereken bir nokta var Float türünden Integer türüne dönüştürünce veri kaybımız oldu buda iş hayatında bazı problemlere sebep olabilir. input() fonksiyonu kullanıcıdan bilgi almayı öğrendiğimize göre şimdi kullanıcıdan aldığımız bilgileri farklı şekilde işleyelim mesela kullanıcıdan aldığı bilgileri tekrar kullanıcıya farklı şekilde verelim.

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

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

Çıktı

İsminiz :Mustafa
Yaşınız :21
Merhaba Mustafa bey yaşınız 21 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ı.

Mobilhanem.com da Python Dersleri serisinin bu dersinde Kullanıcıdan bilgi almayı tip dönüşümlerini type() ve format() metodunu öğrendik bir sonraki dersimiz Python ile Koşullu İfadeleri işleyeceğim. Anlamadığınız , eksik yada hatalı gördüğünüz olursa çekinmeden ulaşabilirsiniz size yardım etmekten mutluluk duyarım bir sonraki yazıda görüşmek üzere.

Bütün Python derslerine buradan ulaşabilirsiniz.

601

Cahit İşleyen

Data Scientist at @Embedica.ai
Python ve Linux sever.
Çay tiryakisi

17 Yorum

  • Hocam pycharm kullanıyorum
    isim = input(“isminizi giriniz:”)
    isminizi giriniz:>?

    böyle oluyor hocam nasıl yapabilirim

  • Hocam python’da ekran oluşturup o ekranda veri almak istiyorum. Mesela ben 1440×900 ekran oluşturdum başlattığımda bu ekran açılıyor. Bu ekrana bir metin yazdırdım ve soru sordum. Bu sorunun cevabını ekranın üzerinde yazsa ve ona göre diğer metin gelse bunu nasıl yapabilirim? Yani kullanıcıdan veri alma işlemini oluşturduğum ekran üzerinden yapmak istiyorum, nasıl yaparım?

  • Merhaba,

    sonuç soldadır!
    Sonuç sağdadır!

    Çıktısı aldım. Çıktının ikinci satırında type sonucu type olarak çıktı. Bunun nedeni nedir?

    codes;

    ez=”123456789″
    print(type(ez),”sonuç soldadır!”)
    ez=type(int)
    print(“Sonuç sağdadır!”,type(ez))

  • Birinci sayıyı girin :İkinci sayıyı girin :Toplam : 13

    birinci sayı = 1 ikinci sayı = 3 ama sonucu 13 olarak veriyor
    toplama yapmayıp yanyana yazıyor emin olmak için sizin kodları kopyalayıp yapıştırdım yine aynı yardımcı olabilir misiniz?

    • sayi1 = input(‘1. Sayı : ‘)
      sayi2 = input(‘1. Sayı : ‘)
      toplam=int(sayi1)+int(sayi2)
      print(“Toplam :{0} “.format(toplam))

      bu şekilde dener misiniz

    • Orda
      birincisayı = int(input(” İlk sayıyı girin: “)
      İkincisayı = int(input(“İkinci sayıyı girin: “) kimi yaza bilərsiniz

  • klavyeden girilen n tane sayının en büyüğü ve en küçüğünü bulduran python kodu nasıl olur? ilk önce kaç tane sayı girileceği sorulacak daha sonra 2 girilirse uyarı verilecek ve daha fazla sayı istenecek

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?