Tekrar merhaba. Yine kısa bir özetle neler yaptık hatırlayalım. Şu ana kadar kabaca 4 işlem ve biraz fazlasını, print komutunun bazı yeteneklerini, sayılarımıza özel isim vererek onları depolayabildiğimiz değişkenleri, farklı kişiler için vücut kitle indeksi bulmayı, int, float ve str veri tiplerini, kodumuzun içinde her satırda kare #
işaretinden sonra hatırlatıcı notlar yazmayı öğrendik.
Sayılarımız, her zaman kodun içinde hazır olmayabilir ve bazen kullanıcıdan da bilgi almamız gerekebilir. Bu durumda input komutunu kullanıyoruz. Gelin kullanıcıya adını sorup ona adıyla merhaba diyen minik bir kod yazalım:
ad = input ( "Adınız : " )
print ( "Merhaba " + ad )
Burada input komutu ekrana Adınız :
yazıp bizim bir cevap vermemizi bekler. Yazılan metin her ne ise, =
eşittir atama sembolüyle input komutundan onu alıp ad
değişkenine koyarız. İkinci satırda printle ekrana Merhaba deyip bir de boşluk bırakarak, ad
değişkenine az önce konan ismi, merhabanın yanına yazarız.
İkinci satırdaki +
işareti farkettiyseniz sayıları değil bu sefer yazıları topluyor, yani yan yana yapıştırıyor. Toplama işaretinin bu metin yapıştırma özelliğini unutmayalım. Çok basit, sayı varsa onları toplar, metin varsa onları yapıştırır.
input
komutu bizden aldığı her veriyi metin kabul eder. Bunu bilmemiz gerekli, zira inputla buradaki gibi metin değil de kilo, boy, yaş vs. sayısal bir bilgi aldığımızda onun sayı olduğunu düşünürsek hata yapmış oluruz. Bu nükteyi, verilen bir sayının bir fazlasını bulmak isteyen şu kodla anlamaya çalışalım :
s = input ( "Bir sayı girin : " )
print ( s + 1 )
Bu haliyle çalıştığında Python hata verir. Neden? Biz örneğin 5
yazsak bile input komutu onu tırnak içinde "5"
olarak yani sayı olan 5
değil de metin olan "5"
olarak alacağından, ikinci satırda sayı olan 5
e değil, metin olan "5"
e 1 eklemeye çalışır ve kodumuz patlar!
Düzeltmek için inputtan gelen metin halindeki sayıyı gerçek bir sayıya dönüştürmemiz lazım. Bunu, metni bir paranteze alarak ve dönüştüreceğimiz türün kelimesini parantezin önüne koyarak yapıyoruz. Örnekler :
int ( "5" ) # metin olan "5" tamsayı olan 5 e dönüşür
float( "6.28" ) # metin olan "6.28" ondalıklı olan 6.28 sayısına dönüşür
str (12.06) # sayı olan 12.06, "12.06" metnine dönüşür
O halde yukarıdaki kodumuzun çalışan hali şu şekilde olmalıdır :
s = input ( "Bir sayı girin : " )
print ( int(s) + 1 )
Evet artık inputtan yine "5"
geliyor ama int("5")
onu sayı olan 5
e çevireceğinden Python hata vermeyecek ve 5
ile 1
i toplayabilecektir. Kafamız biraz karıştıysa, şöyle bir özetle toparlayalım :
print( 5 + 5 ) # aritmetik toplama, sonuç 10 sayısı
print( "5" + "5" ) # metin yapıştırma, sonuç "55" metni ;)
print( 5 + "5" ) # farklı türlerde işlem yapamayız, sonuçta hata alırız!
Bugün son olarak, karar verme, kıyaslama yahut karşılaştırma işlerimizi yaparken kullanacağımız if
komutuna bir bakalım. Örnek olarak ta kullanıcıya kar yağan mevsimi soran bir kod kullanalım :
m = input("Hangi mevsimde kar yağar? ")
if m == "kış":
print( "Tebrikler" )
print( "Doğru yanıt" )
print( "İyi günler" )
Bu koddaki en önemli kısım iki tane yan yana eşittir "=="
işareti. İlk satırdaki tek eşittir "="
( atama ) işaretiyle kullanıcının cevabını "m"
değişkenine alırken, ikinci satırda if
komutundaki çift eşittirle bir karşılaştırma yapıyoruz. Python burada m
değişkeniyle "kış"
metnini karşılaştıracak. m
değişkeninde ne vardı, ilk inputtan gelen kullanıcı yanıtı. O halde yanıt "kış"
ise 3. ve 4. satırda başında biraz da boşluk olan, print komutları çalışacaktır.
if
satırında en sondaki iki nokta üst üste işareti de ":"
önemli, unutursak hata olur. Bir başka dikkatinizi çekmek istediğim şey, Pythonda girintili kodların bir birliktelik anlamı olduğu. Farkettiğiniz gibi tüm komutlar aynı hizadayken testin tutması halinde yapılmasını istediğimiz bütün işler biraz sağa doğru girintili yazılmış. Bunu da unutmuyoruz. Ve son print komutunun her halükarda (kullanıcı kış girse de girmese de) çalışacağını kaçırmayalım. Eğer kullanıcı doğru yanıt vermezse Pythondan göreceği tek tepki "iyi günler"
olacak.
Eğer yanıta kış girilmezse ne yapılacağını else:
kelimesiyle ifade edeceğiz. O da bir sonraki yazımıza kalsın. Tekrar görüşmek dileklerimle.
Öğrendiklerimizi muhakkak aşağıdaki online sitelerden herhangi birinde uygulamayı ihmal etmeyin :
- https://www.programiz.com/python-programming/online-compiler/
- https://repl.it/languages/python3
- https://www.onlinegdb.com/online_python_compiler
Kaynakça :
▪️ https://docs.python.org/3/tutorial/introduction.html
- Python 117 - Numpy 2 / 11.07.2021
- Python 116 - Pythonu online ve kütüphaneleriyle birlikte kullanmak / 04.07.2021
- Python 115 - Pythonda Kütüphaneler ve NumPy / 27.06.2021
- Python 114 - Alıştırmalar / 20.06.2021
- Python 113 - String İşlemleri / 13.06.2021
- Python 112 - For ve While döngüleri / 30.05.2021
- Python 111 - Özet / 23.05.2021
- Python 110 - Fonksiyonlar / 29.03.2021
- Python 109 - Slicing / 28.02.2021