Yeni Başlayanlar için Python Programlama

Özet — Yeni başlayanlar için Python programlama dili nedir? Neden Python? Python ile neler yapılabilir? Sorularına yanıtlar bulduğumuz, örnek Python kodlarını incelediğimiz ve ileri seviye Python programlama için tavsiyelerin yer aldığı makale.

I. PYTHON NEDİR?
Yeni Başlayanlar için Python Programlama
Python, nesne yönelimli, yorumlamalı, birimsel (modüler) ve etkileşimli yüksek seviyeli bir programlama dilidir. [1]

Python, Guido van Rossum tarafından 1990 yılında Amsterdam’da geliştirilmeye başlanmış ve günümüzde Python Yazılım Vakfı (Python Software Foundation) çevresinde toplanan gönüllülerin çabalarıyla gelişimi sürdürülmektedir.

Girintilere dayalı basit sözdizimi (Syntax), yeni başlayanlar için dilin öğrenilmesini ve anlaşılabilir olmasını kolaylaştırır.

Birçok platformda çalışabilir. (Unix, Linux, Mac, Windows, Amiga, Symbian ve daha fazlası.)

II. NEDEN PYTHON?

Kullanılacak onlarca programlama dili varken neden Python? Sorusuna en iyi cevabı Python’a ait aşağıda sıraladığımız avantajlar ile verelim.
•Kolay yazılabilir, okunabilir ve anlaşılabilir bir sözdizimine (Syntax) sahip olması.
•Hemen hemen bütün platformlarda çalışabilir olması.
•Nesne tabanlı programlamaya elverişli olması.
•Birçok alanda güçlü kütüphaneleri olması. (SciPy, NumPy, Matplotlib, SageMath, Deepy, Caffe, OpenCV, Zerynth, Orange, PyData)
•Büyük firmalar tarafından kullanılması ve desteklenmesi. (Google, Wikipedia, Yahoo, CERN, NASA, Reddit)
•Popülaritesinin ve kullanıcı sayısının sürekli artması.

Örnek ve istatistiklerle bu avantajları detaylandırabiliriz.

Öncelikle C# ve Python programlama dillerini karşılaştırarak aralarındaki sözdizimi farkını daha net görelim.

Örneğin her iki dilde “Merhaba Dünya!” çıktısı almaya çalışalım.
C# Sözdizimi
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(“Merhaba Dünya!”);
}
}
}

Python Sözdizimi
print(“Merhaba Dünya!”)

Aradaki sözdizimi farkını ve Python avantajını daha net görüyoruz.

Şimdi ise Google aramalarında programlama dillerinin öğrenimine dayalı Google Trends ham verileri kullanılarak oluşturulan Programlama Dillerinin Popülerliği (PYPL PopularitY of Programming Language) listesine bakalım. [2]

Dünya çapında, Aralık 2018 ile bir yıl öncesinin karşılaştırması:
Yeni Başlayanlar için Python Programlama
Aşağıdaki istatistik Aralık 2018 itibariyle dünyanın en popüler dilinin Python olduğunu ve son 5 yılda %15.4 ile en çok yükselen dil olduğunu PHP dilinin ise %-6.3 ile popülaritesi en çok düşen dil olduğu belirtiliyor.
Yeni Başlayanlar için Python Programlama

Evet, işte tüm bu avantajlardan dolayı Python!

III. PYTHON İLE NELER YAPILABİLİR?

Python, çok fazla alanda kullanılan bir programlama dilidir. Python ile web uygulamaları, masaüstü uygulamalar, oyun geliştirmesi, mobil uygulama, ağ programlama, veri madenciliği, veri analizi, makine öğrenimi, yapay zekâ uygulamaları, bilimsel hesaplama uygulamaları, nesnelerin interneti (IoT) gibi çeşitli alanlarda uygulamalar geliştirilebilir.

Yukarıda saydığımız alanlar ve daha fazlası için çok geniş Python kütüphaneleri mevcuttur.
Python ile Geliştirilmiş Örnek Projeler:
Reddit, Django, Portage, Sage, GNU Mailman, Maya, Blender, Inkscape

Daha fazlası için “30 Amazing Python Projects for the Past Year (v.2018)” makalesini inceleyebilirsiniz.

IV. YENİ BAŞLAYANLAR İÇİN PYTHON POGRAMLAMA

A. Python Kurulumu

Python ile programlamaya başlamadan önce bilgisayarımıza Python kurmamız gerekiyor.

Python Software Foundation resmi sitesi olan https://www.python.org/downloads/ adresinden işletim sistemimize uygun Python sürümünü indirebiliriz.

Windows, OS X, Linux ve diğer işletim sistemleri için detaylı kurulum notlarına https://tutorial.djangogirls.org/tr/python_installation/ adresinden ulaşabiliriz.

Aşağıdaki en çok kullanılan editörlerden bir tanesini seçebilirsiniz:

Jupyter, PyCharm, Spyder, Visual Studio Code, Sublime Text, Eclipse + PyDev, Atom, Visual Studio

Kodlamaya başlamadan önce Python veri tipleri, tip dönüşümleri ve operatörleri bilmemiz gerekiyor.[3][4]

B. Python Veri Tipleri

Veri Tipi

Açıklama

Örnek

Integer – int Tam sayı veri tipidir. 32 bittir. ± 2147483647 arasındaki tam sayıları tanımlar. 25
Long integer – long int Tam sayı veri tipidir. Integer veri tipinin daha geniş aralıklı olanıdır. 64 bittir. 9876543210
Float – float Kayan noktalı sayı veri tipi. 64 bit çift hassasiyetlidir. Ondalıklı sayıları tanımlamada kullanılır. 3.14
Complex – complex Karmaşık sayı veri tipidir. a+bj
String – string Karakter dizilerini göstermek için kullanılırlar. Çift tırnak, tek tırnak veya iç tırnak içinde gösterilirler. ‘Merhaba’, “””Dünya”””, “Aydoğan’ın”
List – list Farklı nesneleri tanımlamakta görev alır. Köşeli parantezler [] içinde gösterilirler. Farklı veri tiplerini barındırabilir. İçeriği değiştirilebilir. [3, [4, ‘four’], 4.5, “Aydoğan”]
Tuple – tuple Listelere benzer yapıdadır. Normal parantezler () içinde gösterilirler. İçerikleri değiştirilemez. (1, ‘test’, 4, ‘U’) , tuple(‘test’)
Dictionary – dictionary Sözlük veri tipidir. Tırnaklı parantez {} içine tanımlanır. {‘food’: ‘adana kebap’, ‘drink’: ‘acılı şalgam’}

Python değişken tanımlarında, diğer dillerde olduğu gibi veri tipi belirtmeye gerek yoktur. Python, atama yapıldığı anda değişkenin tipini otomatik olarak belirler.

Örneğin, a = 2 yazıldığında a’nın veri tipi integer olarak belirlenir.

C. Python Tip Dönüşümleri

Fonksiyon

Açıklama

int(x [,taban]) x değişkenini belirtilen taban türüne çevirir.
long(x [,taban] ) x değişkeninin belirtilen taban türüne dönüştürür.
float(x) x değişkenini ondalıklı türe çevirir.
complex(real [,imag]) Kompleks sayıya çevirir.
str(x) x değişkenini string türüne çevirir.
repr(x) Bir a nesnesinin yazdırılabilir bir temsilini içeren bir dizgi döndürür.
eval(str) String dizgesinden bir nesne döndürür.İçeriği değiştirilebilir.
tuple(x) x değişkenini tuple türüne çevirir.İçerikleri değiştirilemez.
list(x) x değişkenini list türüne çevirir.
set(x) x nesnesini ayar nesnesine çevirir.
dict(x) x nesnesini dictionary nesnesine çevirir. x (key,value) tipinde olmalıdır.
frozenset(x) x nesnesini frozenset nesnesine çevirir.
chr(x) tam sayıyı karaktere çevirir.
unichr(x) tam sayıyı unicode olarak dönüştürür.
ord(x) Tek karakteri tam sayıya çevirir.
hex(x) Tam sayıyı hexadecimal değere çevirir.
oct(x) Tam sayıyı oktal değere çevirir.

D. Python Operatörler:

Operatör

Açıklama

Örnek

+ Operatörün sağ ve solundaki değerleri toplar. x = y + z
– Operatörün sağ ve solundaki değerleri çıkarır. x = y – z
* Operatörün sağ ve solundaki değerleri birbiri ile çarpar. x = y * z
/ y değerini z değerine böler. x = y / z
% y değerini z’ye bölümünden kalanı verir. x = y % z
** y değerinin z kez çarpma işlemidir. x = y ** z
// Bölme işlemini sonucunu tam sayıya yuvarlar. x = y // z

Hazırız artık örnek kodlara başlayabiliriz.

E. Python Örnek Kodlar[5]

#1: Ekrana “Merhaba Dünya” yazdıran Python örneği
print(“Merhaba Dünya!”)

>>> Çıktı:
Merhaba Dünya!

#2: Yorum ve açıklama satırı örneği
a=2

#Tek satırlı yorum ve açıklamalar “#” işareti ile yazılır.
“””
Çok satırlı yorum ve açıklamalar ise 3 adet çift veya tek tırnakla başlar ve aynı işaretle sonlandırılır.
Yorum satırlarındaki kodlar işleme alınmaz.
a = 10
“””
print(a)

>>> Çıktı:
2

#3: Kullanıcının ismini alarak “Merhaba (kullanıcı ismi)” yazdıran Python örneği
isim = input(‘İsminizi Girin : ‘)
print(“Merhaba ” + isim)

>>> Çıktı:
İsminizi Girin : Aydoğan
Merhaba Aydoğan

#4: Girilen 2 sayıyı toplayan Python örneği
sayi1 = input(‘1. Sayı : ‘)
sayi2 = input(‘2. Sayı : ‘)
toplam = float(sayi1) + float(sayi2)
print(“Toplam :{0} “.format(toplam))

>>> Çıktı:
1. Sayı : 4
2. Sayı : 12.5
Toplam :16.5

#5: Girilen 2 sayının ortalamasını bulan Python örneği
sayi1 = input(‘1. Sayı : ‘)
sayi2 = input(‘2. Sayı : ‘)
ortalama = (int(sayi1) + int(sayi2)) / 2
print(“Ortalama : {0} “.format(ortalama))

>>> Çıktı:
1. Sayı : 7
2. Sayı : 38
Ortalama : 22.5

#6: Girilen sayının asal sayı mı değil mi olduğunu bulan Python örneği
sayac = 0
sayi = input(‘Sayı: ‘)
for i in range(2, int(sayi)):
if(int(sayi) % i == 0):
sayac += 1
break
if(sayac != 0):
print(“Sayı Asal Değil”)
else:
print(“Sayı Asal”)

>>> Çıktı:
Sayı: 7
Sayı Asal

#7: Girilen vize ve final notu ortalaması hesaplayan Python örneği
vize = input(‘Vize Notunuz : ‘)
final = input(‘Final Notunuz : ‘)
ortalama = (float(vize) * 0.3) + (float(final) * 0.7)
print(“Ortalama :{0} “.format(ortalama))

>>> Çıktı:
Vize Notunuz : 35
Final Notunuz : 75
Ortalama :63.0

#8: Girilen 3 yazılı notunun ortalamasını bulan Python örneği
y1 = input(‘1. Yazılı : ‘)
y2 = input(‘2. Yazılı : ‘)
y3 = input(‘3. Yazılı : ‘)
ortalama = (float(y1) + float(y2) + float(y3)) / 3
print(“Ortalama :{0} “.format(ortalama))

>>> Çıktı:
1. Yazılı : 40
2. Yazılı : 55
3. Yazılı : 70
Ortalama :55.0

#9: Yazılı ortalaması girilen öğrencinin sınıf geçme durumunu (GEÇTİ – KALDI) gösteren Python örneği
ort = input(‘Ortalamanızı Girin : ‘)
if(int(ort) >= 50):
print(“Geçtiniz”)
else:
print(“Kaldınız”)

>>> Çıktı:
Ortalamanızı Girin : 53
Geçtiniz

#10: Girilen sayının tek mi Çift mi olduğunu bulan Python örneği.
sayi = input(‘Sayı : ‘)
if(int(sayi) % 2 == 0):
print(“Sayı Çift”)
else:
print(“Sayı Tek”)

>>> Çıktı:
Sayı : 33
Sayı Tek

#11: Girilen sayının pozitif, negatif, ya da sıfır olduğunu bulan Python örneği
sayi = input(‘Sayı : ‘)
if(int(sayi) < 0):
print(“Sayı Negatif”)
elif(int(sayi) > 0):
print(“Sayı Pozitif”)
else:
print(“Sayı Sıfır”)

>>> Çıktı:
Sayı : -42
Sayı Negatif

#12: Yaşı girilen kişinin ehliyet alıp alamayacağını gösteren Python örneği
yas = input(‘Yaşınız : ‘)
if(int(yas) < 18):
print(“Yaşınız Ehliyet almak için uygun değil”)
else:
print(“Yaşınız Ehliyet almak için uygun”)

>>> Çıktı: Yaşınız : 17
Yaşınız Ehliyet almak için uygun değil

#13: 1-100 arası sayıları ekranda listeleyen Python örneği.
for i in range(1, 101):
print(i)

>>> Çıktı:
1
2
3…
…100

#14: 1-100 arası çift sayıları listeleyen Python örneği.
for i in range(1, 101):
if i % 2 == 0:
print(i)

>>> Çıktı:
2
4
6…
…100

#15: 1-100 arası tek sayıları listeleyen Python örneği
for i in range(1, 101):
if i % 2 != 0:
print(i)

>>> Çıktı:
1
3
5…
…99

#16: Kenarları girilen dikdörtgenin alanı ve çevresini bulan Python örneği
kisa = input(‘Kısa Kenar : ‘)
uzun = input(‘Uzun Kenar : ‘)
alan = int(kisa) * int(uzun)
cevre = 2 * (int(kisa) + int(uzun))
print(“Alan : {0}”.format(alan))
print(“Çevre : {0}”.format(cevre))
print(i)

>>> Çıktı:
Kısa Kenar : 6
Uzun Kenar : 10
Alan : 60
Çevre : 32

#17: Kullanıcın girdiği iki sayı arasındaki sayıların toplamını gösteren Python örneği.
toplam = 0
sayi1 = input(‘1. Sayı: ‘)
sayi2 = input(‘2. Sayı: ‘)
for i in range(int(sayi1) + 1, int(sayi2)):
toplam += i
print(“{0} ile {1} arasındaki sayıların toplamı : {2}”.format(sayi1, sayi2, toplam))

>>> Çıktı:
1. Sayı: 12
2. Sayı: 24
12 ile 24 arasındaki sayıların toplamı : 198

#18: Maaşı ve zam oranı girilen işçinin zamlı maaşını hesaplayarak ekranda gösteren Python örneği:
yeniMaas = 0
maas = input(“Maaşı Gir : “)
zam = input(“Zam Oranı(%) : “)
yeniMaas = int(maas) + (int(maas) * int(zam) / 100)
print(“Zamlı Maaş :”, yeniMaas)

>>> Çıktı:
Maaşı Gir : 2000
Zam Oranı(%) : 30
Zamlı Maaş : 2600.0

#19: Fonksiyon kullanarak yarıçapı girilen dairenin alanını hesaplayan Python örneği:
def daireAlan(yaricap):
alan = float(yaricap) * float(yaricap) * 3.14
print (“Alan :”, alan)
return alan
r = input(“Yarıçapı Gir :”)
daireAlan(r)

>>> Çıktı:
Yarıçapı Gir :5
Alan: 78.5

#20: Python ile sayı tahmin oyunu örneği.
from random import randint

rand = randint(1, 100)
sayac = 0

while True:
sayac += 1
sayi = int(input(“1 ile 100 arasında değer girin (0 çıkış):”))
if(sayi == 0):
print(“Oyunu İptal Ettiniz”)
break
elif sayi < rand:
print(“Daha Yüksek Bir Sayı Girin.”)
continue
elif sayi > rand:
print(“Daha Düşük Bir Sayı Girin.”)
continue
else:
print(“Rastele seçilen sayı {0}!”.format(rand))
print(“Tahmin sayınız {0}”.format(sayac))

>>> Çıktı:
1 ile 100 arasında değer girin (0 çıkış):6
Daha Yüksek Bir Sayı Girin.
1 ile 100 arasında değer girin (0 çıkış):15
Daha Yüksek Bir Sayı Girin.
1 ile 100 arasında değer girin (0 çıkış):95
Daha Düşük Bir Sayı Girin.
1 ile 100 arasında değer girin (0 çıkış):92
Daha Yüksek Bir Sayı Girin.
1 ile 100 arasında değer girin (0 çıkış):93
Rastele seçilen sayı 93!
Tahmin sayınız 5
1 ile 100 arasında değer girin (0 çıkış):0
Oyunu İptal Ettiniz

#21: Bir string içerisinde belirlenen bir karakterin olup olmadığını kontrol eden Python örneği. Kontrol etme işlemi fonksiyon içinde yapılmıştır.
def kontrol(str):
sayac = 0
for ch in str:
if ch == ‘ğ’:
sayac = sayac + 1

if sayac == 1:
return True
else:
return False

metin = input(‘Metin : ‘)
if(kontrol(metin) == True):
print(‘ğ karakteri metin içinde var’)
else:
print(‘ğ karakteri metin içinde yok’)

>>> Çıktı:
Metin : aydoğan
ğ karakteri metin içinde var

Daha fazla örnek için şu sayfayı ziyaret edebilirsiniz:
http://nbviewer.jupyter.org/github/mustafamuratcoskun/Sifirdan-Ileri-Seviyeye-Python-Programlama/tree/master/

V. PYTHON İLE İLERİ SEVİYE PROGRAMLAMA

İleri Seviye Veri Yapıları ve Objeler, Fonksiyonların İleri Seviye Özellikleri ve Decoratorlar, Iteratorler ve Generatorlar, İleri Seviye Modüller, PyQT Arayüz Geliştirme gibi konuları da içerisinde barındıran “Python ile Programlama: Sıfırdan İleri Seviyeye Python 3” isimli Udemy eğitimini tavsiye ederim.

Ayrıca, Harita Yönetimi, Veri Analizi (Numpy ve Pandas), Makine Öğrenimi, Web Programlama (Django) gibi konularını da içeren “A’dan Z’ye Python Dili ve Makine Öğrenmesi için Python Kursu” isimli Udemy eğitimini de tavsiye ederim.

Son olarak ücretsiz Python dersleri için şu sayfayı ziyaret edebilirsiniz:

REFERANSLAR

[1] https://tr.wikipedia.org/wiki/Python_(programlama_dili)
[2] https://medium.com/yaz%C4%B1l%C4%B1ma-dair/pyhton-programlama-dili-neden-giderek-pop%C3%BClaritesini-artt%C4%B1r%C4%B1yor-ab14b1da39c6
[3] https://orulluogluyusuf.wordpress.com/2016/07/08/pythonda-degiskenler-veri-tipleri/
[4] https://baykoch.github.io/blog/python/python3-veri-tipleri-say%C4%B1lar/
[5] https://www.yazilimkodlama.com/programlama/python-ornekleri/