Python Hakk�nda
E�er ya�am�n�z�n bir d�neminde herhangi bir programlama dili ile az veya �ok ilgilendiyseniz, Python ad�n� duymu� olabilirsiniz. �nceden bir programlama dili deneyiminiz hi� olmam��sa dahi, Python ad�n�n bir yerlerden kula��n�za �al�nm�� olma ihtimali bir hayli y�ksek. Bu sat�rlar� okuyor oldu�unuza g�re, Python ad�n� en az bir kez duymu� oldu�unuzu ve bu �eye kar�� i�inizde hi� de�ilse bir merak uyand���n� varsayabiliriz.
Peki, en k�t� ihtimalle kulak dolgunlu�unuz oldu�unu varsayd���m�z bu �ey hakk�nda acaba neler biliyorsunuz?
��te biz bu ilk b�l�mde, fazla teknik ayr�nt�ya ka�madan, Python hakk�nda k�sa k�sa bilgiler vererek Python��n ne oldu�unu ve bununla neler yapabilece�inizi anlatmaya �al��aca��z.
Python Nedir?
Tahmin edebilece�iniz gibi Python (C, C++, Perl, Ruby ve benzerleri gibi) bir programlama dilidir ve t�pk� �teki programlama dilleri gibi, �n�n�zde duran kara kutuya, yani bilgisayara h�kmetmenizi sa�lar.
Bu programlama dili Guido Van Rossum adl� Hollandal� bir programc� taraf�ndan 90�l� y�llar�n ba��nda geli�tirilmeye ba�lanm��t�r. �o�u insan, isminin Python olmas�na aldanarak, bu programlama dilinin, ad�n� piton y�lan�ndan ald���n� d���n�r. Ancak zannedildi�inin aksine bu programlama dilinin ad� piton y�lan�ndan gelmez. Guido Van Rossum bu programlama dilini, The Monty Python adl� bir �ngiliz komedi grubunun, Monty Python�s Flying Circus adl� g�sterisinden esinlenerek adland�rm��t�r. Ancak her ne kadar ger�ek b�yle olsa da, Python programlama dilinin pek �ok yerde bir y�lan fig�r� ile temsil edilmesi neredeyse bir gelenek halini alm��t�r.
Dedi�imiz gibi, Python bir programlama dilidir. �stelik pek �ok dile k�yasla ��renmesi kolay bir programlama dilidir. Bu y�zden, e�er daha �nce hi� programlama deneyiminiz olmam��sa, programlama maceran�za Python�la ba�lamay� tercih edebilirsiniz.
Neden Programlama ��renmek �steyeyim?
G�nl�k ya�am�n�za ��yle bir bak�n. Gerek i� yerinizde olsun, gerek evde bilgisayar ba��nda olsun, belli i�leri tekd�ze bir �ekilde tekrar etti�inizi g�receksiniz. Mesela s�rekli olarak yaz�l� belgelerle u�ra�man�z� gerektiren bir i�te �al���yor olabilirsiniz. Belki de her g�n onlarca belgeyi a��p bu belgelerde birtak�m bilgiler ar�yor, bu bilgileri d�zeltiyor, yeniliyor veya siliyorsunuzdur. Bu i�lemlerin ne kadar vakit al�c� ve s�k�c� oldu�unu d���n�n. E�er bir programlama dili biliyor olsayd�n�z, b�t�n bu i�lemleri sizin yerinize bu programlama dili hallediyor olabilirdi.
��te Python programlama dili b�yle bir durumda devreye girer. Her g�n saatler boyunca u�ra�t���n�z i�lerinizi, yaln�zca birka� sat�r Python kodu yard�m�yla birka� saniye i�inde tamamlayabilirsiniz.
Ya da ��yle bir durum d���n�n: �al��t���n�z i� yerinde PDF belgeleriyle bolca ha��r ne�ir oluyor olabilirsiniz. Belki de y�zlerce sayfal�k ka�eli ve imzal� belgeyi PDF haline getirmeniz gerekiyordur. �stelik sizden bu belgeleri m�mk�n oldu�unca tek par�a halinde PDF�lemeniz isteniyor olabilir. Ama o y�zlerce sayfay� taray�c�dan ge�irirken i�in tam ortas�nda bir aksilik oluyor, makine ar�zalan�yor ve belki de ister istemez belgeniz b�l�n�yordur.
��te Python programlama dili b�yle bir durumda da devreye girer. E�er Python programlama dilini ��renirseniz, �nternet�te saatlerce �cretsiz PDF birle�tirme program� aramak veya profesyonel yaz�l�mlara onlarca dolar para vermek yerine, belgelerinizi birle�tirip i�inizi g�recek program� kendiniz yazabilirsiniz.
Elbette Python�la yapabilecekleriniz yukar�da verdi�imiz basit �rneklerle s�n�rl� de�ildir. Python�� kullanarak masa�st� programlama, oyun programlama, ta��nabilir cihaz programlama, web programlama ve a� programlama gibi pek �ok alanda �al��malar y�r�tebilirsiniz.
Neden Python?
Python programlar�n�n en b�y�k �zelliklerinden birisi, C ve C++ gibi dillerin aksine, derlenmeye gerek olmadan �al��t�r�labilmeleridir. Python�da derleme i�lemi ortadan kald�r�ld��� i�in, bu dille olduk�a h�zl� bir �ekilde program geli�tirilebilir.
Ayr�ca Python programlama dilinin basit ve temiz s�z dizimi, onu pek �ok programc� taraf�ndan tercih edilen bir dil haline getirmi�tir. Python��n s�z diziminin temiz ve basit olmas� sayesinde hem program yazmak, hem de ba�kas� taraf�ndan yaz�lm�� bir program� okumak, ba�ka dillere k�yasla �ok kolayd�r.
Python��n yukar�da say�lan �zellikleri sayesinde d�nya �ap�nda �n sahibi b�y�k kurulu�lar (Google, YouTube ve Yahoo! gibi) b�nyelerinde her zaman Python programc�lar�na ihtiya� duyuyor. Mesela pek �ok b�y�k �irketin Python bilen programc�lara i� imkan� sa�lad���n�, Python��n ba� geli�tiricisi Guido Van Rossum�un 2005 ile 2012 y�llar� aras�nda Google�da �al��t���n�, 2012 y�l�n�n sonlar�na do�ru ise Dropbox �irketine ge�ti�ini s�ylersek, bu programlama dilinin �nemi ve ge�erlili�i herhalde daha belirgin bir �ekilde ortaya ��kacakt�r.
Python programlama dili ve bu dili hakk�yla bilenler sadece uluslararas� �irketlerin ilgisini �ekmekle kalm�yor. Python son zamanlarda T�rkiye�deki kurum ve kurulu�lar�n da dikkatini �ekmeye ba�lad�. Bu dil art�k yava� yava� T�rkiye�deki �niversitelerin m�fredat�nda da kendine yer buluyor.
S�z�n �z�, pek �ok farkl� sebepten, ba�ka bir programlama dilini de�il de, Python programlama dilini ��renmek istiyor olabilirsiniz.
Python Nas�l Telaffuz Edilir?
Python programlama dili �zerine bu kadar s�z s�yledik. Peki yabanc� bir kelime olan python�� nas�l telaffuz edece�imizi biliyor muyuz?
Geli�tiricisi Hollandal� olsa da python �ngilizce bir kelimedir. Dolay�s�yla bu kelimenin telaffuzunda �ngilizcenin kurallar� ge�erli. Ancak bu kelimeyi hakk�yla telaffuz etmek, ana dili T�rk�e olanlar i�in pek kolay de�il. ��nk� bu kelime i�inde, T�rk�ede yer almayan ve telaffuzu peltek s�yi and�ran [th] sesi var. �ngilizce bilenler bu sesithink (d���nmek) kelimesinden hat�rlayacaklard�r. Ana dili T�rk�e olanlar think kelimesini genellikle [tink] �eklinde telaffuz eder. Dolay�s�yla python kelimesini de [payt�n] �eklinde telaffuz edebilirsiniz.
Python kelimesini tamamen T�rk�ele�tirerek [piton] �eklinde telaffuz etmeyi ye�leyenler de var. Elbette siz de dilinizin d�nd��� bir telaffuzu tercih etmekte �zg�rs�n�z.
Bu arada, e�er python kelimesinin �ngilizce telaffuzunu dinlemek istiyorsan�z howjsay.com adresini ziyaret edebilir, Guido Van Rossum�un bu kelimeyi nas�l telaffuz etti�ini merak ediyorsan�z da http://goo.gl/bx9iJuadresindeki tan�t�m videosunu izleyebilirsiniz.
Platform Deste�i
Python programlama dili pek �ok farkl� i�letim sistemi ve platform �zerinde �al��abilir. GNU/Linux, Windows, Mac OS X, AS/400, BeOS, MorphOS, MS-DOS, OS/2, OS/390, z/OS, RiscOS, S60, Solaris, VMS, Windows CE, HP-UX, iOS ve Android gibi, belki ad�n� dahi duymad���n�z pek �ok ortamda Python uygulamalar� geli�tirebilirsiniz. Ayr�ca herhangi bir ortamda yazd���n�z bir Python program�, �zerinde hi�bir de�i�iklik yap�lmadan veya ufak de�i�ikliklerle ba�ka ortamlarda da �al��t�r�labilir.
Biz bu belgelerde Python programlama dilini GNU/Linux ve Microsoft Windows i�letim sistemi �zerinden anlataca��z. Ancak s�k� s�k�ya bel ba�layaca��m�z �zel bir GNU/Linux da��t�m� veya Windows s�r�m� yok. Bu y�zden, hangi GNU/Linux da��t�m�n� veya hangi Windows s�r�m�n� kullan�yor olursan�z olun, buradaki bilgiler yard�m�yla Python programlama dilini ��renebilir, ��rendiklerinizi kendi i�letim sisteminize uyarlayabilirsiniz.
Bu sat�rlar�n yazar�n�n, Ubuntu, CentOs, Windows 7 ve Windows 10 kurulu bilgisayarlara eri�imi oldu�u i�in, bu kitaptaki ekran g�r�nt�leri genellikle bu i�letim sistemlerinden al�nm�� olacakt�r.
Farkl� Python S�r�mleri
E�er daha �nce Python programlama dili ile ilgili ara�t�rma yapt�ysan�z, �u anda piyasada iki farkl� Python serisinin oldu�u dikkatinizi �ekmi� olmal�. 16.05.2016 tarihi itibariyle piyasada olan en yeni Python s�r�mleri Python 2.7.11 ve Python 3.5.1�dir.
E�er bir Python s�r�m� 2 say�s� ile ba�l�yorsa (mesela 2.7.11), o s�r�m Python 2.x serisine aittir. Yok e�er bir Python s�r�m� 3 say�s� ile ba�l�yorsa (mesela 3.5.1), o s�r�m Python 3.x serisine aittir.
Peki neden piyasada iki farkl� Python s�r�m� var ve bu bizim i�in ne anlama geliyor?
Python programlama dili 1990 y�l�ndan bu yana geli�tirilen bir dil. Bu s�re i�inde pek �ok Python program� yaz�ld� ve insanlar�n kullan�m�na sunuldu. �u anda piyasada Python��n 2.x serisinden bir s�r�mle yaz�lm�� pek �ok program bulunuyor. 3.x serisi ise ancak son y�llarda yayg�nl�k kazanmaya ba�lad�.
Biz bu kitapta kolayl�k olsun diye Python��n 3.x serisini Python3; 2.x serisini ise Python2 olarak adland�raca��z.
Python3, Python2�ye g�re hem �ok daha g��l�d�r, hem de Python2�nin hatalar�ndan ar�nd�r�lm��t�r. Python3�teki b�y�k de�i�ikliklerden �t�r�, Python2 ile yaz�lm�� bir program Python3 alt�nda �al��mayacakt�r. Ayn� durum bunun tersi i�in de ge�erlidir. Yani Python3 kullanarak yazd���n�z bir program Python2 alt�nda �al��maz.
Dedi�imiz gibi, piyasada Python2 ile yaz�lm�� �ok say�da program var. ��te bu sebeple Python geli�tiricileri uzun bir s�re daha Python2�yi geli�tirmeye devam edecek. Elbette geli�tiriciler bir yandan da Python3 �zerinde �al��may� ve bu yeni seriyi geli�tirmeyi s�rd�recek.
Farkl� Python serilerinin var olmas�ndan �t�r�, Python ile program yazarken hangi seriye ait s�r�mlerden birini kulland���n�z� bilmeniz, yazaca��n�z program�n kaderi a��s�ndan b�y�k �nem ta��r.
Hangi Seriyi ��renmeliyim?
Dedi�imiz gibi, �u anda piyasada iki farkl� Python serisi var: Python3 ve Python2. Peki acaba hangi seriye ait bir s�r�m� ��renmelisiniz?
[K�sa cevap]
Python3�� ��renmelisiniz.
[Uzun cevap]
E�er Python programlama diline yeni ba�l�yorsan�z Python3�� ��renmeniz daha do�ru olacakt�r. Ama e�er Python programlama dilini belirli bir proje �zerinde �al��mak �zere ��reniyorsan�z, hangi s�r�m� ��renmeniz gerekti�i, projede kullanaca��n�z yard�mc� mod�llerin durumuna ba�l�d�r. Zira �u anda piyasada bulunan b�t�n Python mod�lleri/programlar� hen�z Python3�e aktar�lm�� de�il.
E�er projenizde kullanmay� planlad���n�z yard�mc� mod�ller halihaz�rda Python3�e aktar�lm��sa Python3�� ��renebilirsiniz. Ancak e�er bu mod�llerin hen�z Python3 s�r�m� ��kmam��sa sizin de Python2 ile devam etmeniz daha uygun olabilir. Ama her hal�karda Python3��n bu dilin gelece�i oldu�unu ve g�n�n birinde Python2�nin tamamen tedav�lden kalkaca��n� da akl�n�z�n bir k��esinde bulundurun.
------------------------------------------------------------------------------------------------------------
�nemli Not
E�er yazd���n�z yorum i�inde kod kullanacaksan�z, kodlar�n�z� <pre><code> etiketleri i�ine al�n. �rne�in: