Python Dersleri - Başlangıç 2

Users who are viewing this thread

Python-Logo-PNG-Image.png
Merhabalar. Hem kendi bilgimi pekiştirmek hem de dünyaya bir katkıda bulunmak amacıyla Python dilinde başlangıç düzeyinde bir ders hazırlamak istedim.

Python Nedir?
Python, nesne yönelimli, yorumlamalı, birimsel (modüler) ve etkileşimli yüksek seviyeli bir programlama dilidir. Ortaya çıkaran kişi ise Guido van Rossum'dur. Python ismi bilinenin aksine piton yılanından değil ortaya çıkaran kişi olan Rossum'un çok sevdiği Monty Python adlı bir komedi grubundan gelmektedir.
-Wikipedia

Başlangıç
Python Linux işletim sistemlerine hazır olarak gelmektedir. Windows kullananlar ise https://www.python.org/downloads/ adresinden son sürüm olan 3.x.x sürümünü indirebilir. Neden 3.x.x sürümü derseniz, güncel sürüm olması yeterli bir cevap olacaktır.

Linux kullananlar işletim sistemlerine göre not defterini açıp üst kısma #!/usr/bin/env python yazarak başlayabilirler. Windows kullanıcıları da not defteri oluşturup dosya>farklı kaydet yaparak isim.py şeklinde kaydedebilir.

Artık program yazmaya hazırız. Programlama geleneğini bozmayalım ve ekrana "Merhaba Dünya" çıktısı veren bir program yazalım.
Code:
print("Merhaba Dünya!")
Windows kullanıcıları programı kaydettikleri yerde boş bir alana shift+farenin sağ tuşuna tıklayıp "komut penceresini burada aç" diyerek komut penceresini açabilir. Programı başlatmak için de ismine göre "deneme.py" yazarak programı çalıştırabilirler. Linux kullanıcıları da Terminal'de programı kaydettikleri yere gelip Python3 deneme.py yazarak programı çalıştırabilir.

"print" Fonksiyonu
Üst kısımda print fonksiyonunu kullanarak ekrana "Merhaba Dünya!" çıktısını veren bir program yazmıştık. Fakat print sadece print("ekrana yazılacak yazı") şeklinde kullanılmaz. Örnek olarak:
Code:
print("Merhaba Dünya!")
print("Merhaba Dünya!")
print('Merhaba Dünya!')
print("""Merhaba
Dünya!""")
aynı şeylerdir. Sonuncusunun farkı, birden fazla satıra yazı yazabiliyor olmasıdır. Mesela:
Code:
print("""
Python
1- print fonksiyonu ekrana çıktı verir.
2- print birden fazla şekilde kullanılabilir.
3- üçlü tırnak içine yazı yazmak bunlardan biridir.
""")
Çalıştırdığımızda şöyle bir çıktı alacağız.
Python
1- print fonksiyonu ekrana çıktı verir.
2- print birden fazla şekilde kullanılabilir.
3- üçlü tırnak içine yazı yazmak bunlardan biridir.

"print" Hakkında Ek Bilgiler
print fonksiyonunu kullanırken dikkat edilmesi gereken bazı durumlar vardır. Örnek olarak şöyle bir yazı yazdık diyelim:
Code:
print("Python'da "print" fonksiyonu ile ekrana çıktı verilir.")
Bu kodu çalıştırdığımızda SyntaxError: invalid syntax diye bir hata alıyoruz. Nedeni ise tırnak içinde tırnak kullanmak. Peki bir şeyi vurgulamak için tırnak kullanamayacak mıyız? Tabi ki kullanacağız. Aşağıdaki kodu bir inceleyelim:
Code:
print("Python\'da \"print\" fonksiyonu ile ekrana çıktı verilir.")
Gördüğünüz gibi tek tırnağı bile slash işaretiyle ayırdık. Bu işaret önündeki sembolün işlevini yitirtir ve işlevsiz bir yazı olarak ekrana yazdırır. Daha iyi anlamak için bir örnek daha yapalım.
Code:
print('Python\'da \"print\" fonksiyonu ile ekrana çıktı verilir. Buna ek olarak da \'\\' işareti tırnaklar arasındaki sorunu ortadan kaldırır')
Gördüğünüz gibi her zaman özel işaretin bir önüne koyuyoruz slash işaretini. Tabi ki tek çözüm bu değil. Ayrıca şöyle yazarak da sorunumuzu halledebiliriz.
Code:
print("""Python'da "print" fonksiyonu ile ekrana çıktı verilir. Buna ek olarak da '\\' işareti tırnaklar arasındaki sorunu ortadan kaldırır""")
Önemli olan başlangıçta kullandığımız işaretin cümle içinde tekrar etmemesi. Ayrıca bir nokta dikkatinizi çekmiş olmalı. İki tane \\ işaretini kullandık. Demiştik ya slash önündeki elemanın işlevini yitirtir. İşte bu yüzden tek slash koyduğumuzda ekrana herhangi bir çıktı vermez. Fakat iki slash koyduğumuzda birisi kaybolur ve önündeki ekrana yazılır.

"print" Fonksiyonu Devamı
Bir önceki derste print fonksiyonunu kullanarak ekrana string yani metinsel ifadeler yazdırmıştık. Ama print sadece string yani metinsel ifadeleri yazdırmak ile sınırlı değil. Bu fonksiyonu kullanarak integer yani sayısal işlemler de yapabiliriz.

Örnek:
Code:
print (1+1)
2

Nasıl yazdığımıza dikkat edin. Sayıları tırnak işareti içine almadık. Eğer tırnak içine alırsak ekrana olduğu gibi çıktıyı verir. Yani işlem yapmaz. Şunu asla unutmayın ki integer ifadelerde hiç bir şekilde tırnak kullanılmaz. Belki şu an aklıma gelmeyen bir kaç ufak istisna bulunabilir ama siz şimdilik tırnak kullanılmadığını bilin.

Biraz daha örnek yapalım.
Code:
print (10/5)
2.5

print (10*5)
50

Ve önemli bir noktaya değineyim. Eğer üslü sayılar ile işlem yapmak isterseniz çift yıldız (**) kullanacaksınız. Örnek olarak:
Code:
print (10**2)
100

print (25**5)
9765625

İşlemlerde kullanılan işleçler:
Code:
+  : toplama
-  : çıkartma
*  : çarpma
/  : bölme
** : üs alma
%  : Bir sayının bölümünden kalan
//  : Bir sayının bir sayıya bölümünde ki sonucun tam kısmı

"input" (Python 2.x sürümünde raw_input)
Bir önceki derste "print" fonksiyonunu kullanarak programı çalıştırdığımızda karşımıza çıkacak yazıları yazdırmış ve bir kaç matematiksel işlem yapmıştık. Ancak burada hayati önem taşıyan bir şey eksikti; kullanıcı girdisi. Ne demek istediğimi anlamış veya anlamamış olabilirsiniz. Daha açık olmak için şu kodları yazıp çalıştıralım:
Code:
girdi = input("'1+1' yaz: ")
print(girdi)
Aman Tanrım! Az önce programımızla kullanıcı girdisini kullanarak bir matematik işlemi yaptık! Eğer programı biraz kurcaladıysanız sadece 1+1'i toplamadığını, diğer tüm matematik işlemlerini de yaptığını görmüşsünüzdür. Sanırım bu örnekle input'un ne işe yaradığını az çok anladınız; Kullanıcıdan bir şey girmesini istiyor. Şimdilik matematik işlemi dışında pek bir işlevi yok gibi görünüyor. Ancak koşullu ifadeler dersine geldiğimizde çok büyük işler yapacağımızı göreceksiniz.

Not: Yukarıdaki kodda matematiksel işlem yaparken sorunla karşılaşırsanız input'u integer'a çevirmeniz gerekiyor. Şimdilik bunun böyle olduğunu bilin. İleride int ve str hakkında detaylı bilgiler ekleyeceğim.

Örnek çevirme:
Code:
girdi = int(input("'1+1' yaz: "))
print(girdi)

Değişkenler
Bir önceki derste kullanıcıdan girdi alarak işlemler yapmıştık. Input kullanırken de eşittir işareti ile birlikte işaretin soluna "girdi" yazmıştık. İşte eşittirin soluna yazdığımız yazıya "değişken" denir. Programlamada hayati önem taşır bu şeyler. Şimdi bir örnek yapalım.
Code:
sayi1 = 10
sayi2 = 10
print(sayi1+sayi2)
20
Gördüğünüz gibi. Değişkenlere bazı sayılar atadık ve o değişkenleri kullanarak sayılara ulaştık. Bir nevi sandık gibi düşünebiliriz. Sandığa sayıları doldurduk ve ihtiyac duyduğumuzda sandıktan çıkartıp yerine yerleştirdik.

"Değişken yerine sayıları yazamaz mıydık? Ne gerek var değişkene?"

Tabiki yazabilirdik. Ama bir de şu örneğe bakalım.
Code:
urun1 = "Samsung Galaxy S4"
urun2 = "Iphone 5"
urun3 = "Samsung Lcd Televizyon"

print(urun1,"\n",urun2,"\n",urun3)
print(urun3,"\n",urun2,"\n",urun1)
Samsung Galaxy S4
Iphone 5
Samsung Lcd Televizyon
Samsung Lcd Televizyon
Iphone 5
Samsung Galaxy S4
Örnekteki gibi değişken içindeki veriyi, sadece değişikeni kullanarak istediğiniz kadar, istediğiniz yerde kullanabilirsiniz. Ancak önemli bir nokta var. Tıpkı integer ifadeler gibi değişikenler kullanılırken de tırnak kullanılmaz. Biraz daha örnek yapalım.
Code:
girdi = input("Bir şey yaz: ")
print("Girdiğiniz şey: ", girdi)
Girdiğiniz şey: Python

Koşullu İfadeler
Buraya kadar Python hakkında elle tutulur bir şey yapamasak da, güzel bilgiler edindik. Bu derste ise kodlamada hayati önem taşıyan bir şey daha öğreneceğiz; If-Else-Elif.

Nedir bu if-else-elif?
Çoğunuz Türkçe anlamını biliyordur ve en azından kafanızda bir şeyler canlanmıştır. "if" Türkçe'de "eğer" anlamına gelir. "else", "yoksa, değilse" anlamlarına gelir. "elif" ise else if'in kısaltılmış halidir. Yani "eğer değilse" anlamına gelir. Bu kadar İngilizce dersi yeterli sanırım. Şimdi de bu kelimelerin Python'da bir örnek ile ne işe yaradığına bakalım.
sayi1 = 5 #öncelikle değişken atadık.
if sayi1 == 5: #Eğer sayımız 5'e eşitse...
    print("Sayımız 5'e eşit!") #... ekrana bu yazıyı bas.
else: #değilse...
    print("Sayımız 5'e eşit değil!") #... ekrana bu yazıyı bas.
Bu örnekte ekrana "sayımız 5'e eşit!" çıktısını verecek. Eğer değişkendeki 5 değerini farklı bir şey yaparsak 5'e eşit değil çıktısını alacağız. Yazdığımız kodlara dikkat edin. "Eşit" olayını çift eşittir(==) kullanarak yaptık. Bunun nedeni tek eşittirin farklı bir anlamı olması(değişkenler vb.) Ayrıca koşulumuzdan sonra da iki nokta(:smile: kullandık. Bu değişmez bir kuraldır. Her zaman koşuldan sonra iki nokta kullanılır. Son olarak da koşulumuz sağlanırsa programımızın yapacağı şeyi belirledik. Bunda da içeri doğru dört adet girdi(boşluk) kullandık. Eğer boşluk bırakmazsanız programınız hata verir. Bu da kurallarımızdan birisidir. Sanırım kafanızda bir şeyler şekillenmiştir.

Ayrıca bu örnekte # işaretini de gördük. Bu işaret açıklama satırında kullanılıyor. Bu işaretten sonra yazılan hiç bir şey programın çalışmasına bir katkıda bulunmaz. Sadece açık kaynak kodlamada başkalarının o kodda ne yapmak istediğinizi anlaması veya bir kaç hafta sonra kendi yazdığınız kodları açtığınızda ne yapmak istediğinizi hatırlamanız için kullanılır.

Bir de input ile örnek yapalım.
girdi = input("Sayı gir: ")
if girdi < 10:
    print("Girdiğiniz değer 10'dan küçük!")
elif girdi > 10:
    print("Girdiğiniz değer 10'dan büyük!")
Program sizden bir sayı girmenizi istiyor ve sayıya göre bunun 10'dan büyük veya küçük olduğunu buluyor. Bu konuda biraz pratik yaparak konuyu çok daha iyi anlayabilirsiniz.

Kullanılabilir operatörler.
Code:
==  : eşittir
!=  : eşit değildir
>   : büyüktür
<   : küçüktür
>=  : büyük eşittir
<=  : küçük eşittir

Koşullu İfade Örnekleri
Bu yazıda bir önceki derste öğrendiğimiz koşullu ifadeler konusuyla ilgili örnekler paylaşacağım. Mantığı çok basit, sadece tam olarak anlamayanların da olabileceği için biraz yardım etmek istedim.

Örnek 1: Sayı Tahmini
print("-Sayi Tahmin Oyunu-")
sayi = 6
tahmin = input("Tahmininiz: ")

if(tahmin != 6):
    print("Girdiginiz sayi dogru degil!")
else:
    print("Bildiniz! Sayi: "+tahmin)
Açıklama: Öncelikle çok kullanışsız ve her tahmin için yeniden çalıştırmamız gereken bir program oldu bu. Şimdilik buna takılmayın ve sadece koşullu ifadeleri öğrenmeye odaklanın. İleride döngü ve bazı fonksiyonları kullanarak programın kullanıcı istemeden kapanmamasını ve bilgisayarın tuttuğu sayının rastgele seçilmesini sağlayan bir program haline getireceğiz.

Yaptığımız şey en başta(2. satır) bir değişkene bizden istenen sayıyı atadık. Daha sonra(3. satır) kullanıcıdan bir sayıyı tahmin etmesini istedik. Bunlardan sonra da kullanıcının girdiği sayının bizim istediğimizle aynı olup olmamasını sorguladık. (satır 5-:cool: Kullandığımız işlece dikkat edin. Değilse "!=" işleci. Bunu eğer sayımız 6'ya eşitse(==) yazarak da yapabilirdik. Tamamen size kalmış bir durum.

Sayımız 6 değilse ekrana yanlış olduğuyla ilgili bir yazı yaz. Üstteki koşul sağlanmıyorsa(7. satır) yani sayımız 6 dışında başka bir sayı değilse o zaman altıdır. Mantık bu. Ayrıca siz biraz daha geliştirip sayı altıdan büyükse "Biraz in," altıdan küçük "Biraz çık," tarzında da yapabilirsiniz.

Örnek 2: Kullanıcı Girişi
print("-Sisteme Giris-")

kullanici_adi = "Stortbeck"
sifre = "123456"
k_adi = raw_input("Kullanici Adi: ")
k_sifresi = raw_input("Sifre: ")

if(k_adi != kullanici_adi and k_sifresi == sifre):
    print("Kullanici adiniz hatali!")
elif(k_sifresi != sifre and k_adi == kullanici_adi):
    print("Sifreniz hatali!")
elif(k_adi != kullanici_adi and k_sifresi != sifre):
    print("Kullanici adi ve sifre hatali!")
else:
    print("Hos geldin, "+k_adi)
Açıklama: Kodları inceleyerek anlayabilirsiniz ancak ben yine de yardım edeyim. Bu programda veri tabanı kullanmadığımız ve sadece örnek olması için yazdığımızdan dolayı kullanıcı adı ve şifreyi program içinde bir değişken olarak atadık. Daha sonra kullanıcıdan giriş yapmasını istedik. Girdiği bilgilere göre karşılaştırmalar yaparak istediğimiz giriş bilgilerini elde ettik.

Devamı gelecek...
 
Teşekkürler, yorum görünce hemen bi güncelleme attım. :grin: print'in devamı ve input'a giriş dersi eklendi. Bu arada söz vermeyeyim ama forum kurallarınca bir sıkıntı çıkmazsa ileride küçük malware programları yazacağız.  :roll:
 
Pythona dair "henüz" ilgim yok fakat değerli vaktinizi ayırıp insanlara böyle bir kaynak sunduğunuz için teşekkür ederim. Linki kesinlikle saklayacağım.
 
@Heisenberk Tesekkur ediyorum guzel yorumunuz icin. Ben zamaninda bayagi ilgi duyuyordum bu dile ve hobi olarak baslamistim, yaklasik 1 yilda buyuk bir bilgi birikimi edindim. Ciddi anlamda diger dillerde de cok kolay islem yapma yetenegi kazandirdi bana. Eger bir gun ogrenmek isterseniz size de cok sey katacagina inaniyorum.

@Neutron 2. bolum degil de baslangic 1'e devam edecegim yeni konularla. Yarin veya pazartesi devami gelecek.
 
Bazı hatalar düzeltildi. Bunları bildirdiği için Nihbrin'e teşekkür ediyorum. Şu sıralar C ile ilgileniyorum fakat buna da zaman ayırıp yeni dersler ekleyebilirim.
 
Benim için iyi olur. Boş zamanınızda -python'a başlangıç için- dersler hazırlayıp konu altında paylaşabilirsiniz Ben de linkini ana mesaja eklerim.


Konuyu aktif etmek için bir kaç örnek ekledim.
 
SuperNaturaL29 said:
Devamını bekliyoruz hocam.

Arkadaşın son aktif olma tarihi; 17 Temmuz 2017, 21:13:16

Kasıtlı olmadan konuyu hortlattın sanırım, bu arada istiyorsanız Python öğrenmek için internetten araştırma yaparakta öğrenebilirsin..
 
General Shepherd said:
SuperNaturaL29 said:
Devamını bekliyoruz hocam.

Arkadaşın son aktif olma tarihi; 17 Temmuz 2017, 21:13:16

Kasıtlı olmadan konuyu hortlattın sanırım, bu arada istiyorsanız Python öğrenmek için internetten araştırma yaparakta öğrenebilirsin..

Biraz öyle oldu  :shock:
kafam da pek iyi değildi , neyse ben bi şekilde hallederim sağolun hocam
 
Back
Top Bottom