Python Programlama Diline Giriş
Python Programlama Diline Giriş
Merhaba Arkadaşlar bugün ise size Python Programlama dilinden
bahsedeceğim. Bu ders biraz teorik kalacak ama ikinci dersten Python
örneklerini yapmaya başlarız. Peki bugün kısaca ne öğreneceğiz.
1 Temel Kavramlar ve Genel Bilgiler
2 Python Nasıl Bir
Dildir?
3 Python Dili,
Gerçekleştirimleri ve Dağıtımları
4 Python Ortamının
Kurulumu
5 Python Dilinin
Özellikleri
6 Python2 ve Python3
7 Python2 Python3 arasındaki farklar
8 Temel Bilgisayar
Mimarisi
9 İşletim Sistemi
(Operating System)
10 Gömülü Sistemler
(Embedded Systems)
11 Decompiler’lar ve
Disassembler’lar
12 IDE (Integrated
Development Environment)
13 Bit ve Byte
Kavramları
14 Bilgisayar
Dilleri ve Programlama Dilleri
15 Kullanım
Alanlarına Göre Sınıflandırma:
16 Python Kodlarının
Yazım Biçimi
17 Python'da Temel
Veri Türleri
18 Python Standart
Kütüphanesi
19 Python'da Temel
Operatörler
Temel Kavramlar ve
Genel Bilgiler
Bu bölümde Python
Programlama Dili hakkında bazı temel kavramların açıklaması yapılacak ve genel
bilgiler verilecektir.
Python Nasıl Bir Dildir?
Girintilere dayalı basit sözdizimi, dilin
öğrenilmesini ve akılda kalmasını kolaylaştırır. Bu da ona söz diziminin
ayrıntıları ile vakit yitirmeden programlama yapılmaya başlanabilen bir dil
olma özelliği kazandırır.
Modüler yapısı, sınıf dizgesini (sistem) ve her
türlü veri alanı girişini destekler. Hemen hemen her türlü platformda
çalışabilir. (Unix, Linux, Mac, Windows, Amiga, Symbian). Python ile sistem
programlama, kullanıcı arabirimi programlama, ağ programlama, web programlama,
uygulama ve veritabanı yazılımı programlama gibi birçok alanda yazılım
geliştirebilirsiniz. Büyük yazılımların hızlı bir şekilde prototiplerinin
üretilmesi ve denenmesi gerektiği durumlarda da C ya da C++ gibi dillere tercih
edilir.
Python Dili, Gerçekleştirimleri ve
Dağıtımları
Python dünyasında "gerçekleştirim
(implementation)" denildiğinde yazılmış çalıştırılabilen python
yorumlayıcıları ve kütüphaneleri anlaşılmaktadır. Python dilinin pek çok
gerçekleştirimi (implementation) vardır. Yukarıda da belirtildiği gibi Python
yorumlayıcı (interpreter) ile çalışılan bir dildir. Biz kodumuzu derleyiciye
sokarak değil yorumlayıcıya sokarak çalıştırırız. Python için pek çok
yorumlayıcı yazılmıştır. Bu yorumlayıcıların bazıları bağımsız olarak sıfırdan gerçekleştirilirken
bazıları ise bazı diğer gerçekleştirimler temel alınarak onlardan klonlanarak
gerçekleştirilmiş durumdadır.
Python'ın en önemli ve en çok kullanılan
gerçekleştirimi "Python Software Foundation" tarafından sürdürülen
(ilk versiyonları Guido van Rossum tarafından yazılmıştır) olan CPython isimli
yazılımdır. Bu gerçekleştirim doğrudan "python.org" sitesinden
indirilebilir. Biz de kursumuzda CPython yorumlayıcısı ve kütüphanelerini
kullanacağız. CPython C Programlama Dili kullanılarak gerçekleştirilmiştir.
Python Ortamının Kurulumu
Pyton denildiğinde ilk akla gelen şüphesiz CPython
dağıtımıdır. Bu dağıtım doğrudan python.org sitesinden indirilerek kurulabilir.
Benzer biçimde Anaconda dağıtımı da kendi web sitesinden indirilerek basit bir
biçimde kurulabilmektedir. Bunun dışında Visual Code programını da kullana
bilir siniz.
Python Dilinin Özellikleri
1.
Python Yüksek seviye bir dildir.
2.
Python nesne tabanlı bir dildir.
3.
Python esnek ve güçlü bir dildir.
4.
Python, kurulumla gelen IDLE IDE’si bulunmaktadır.
Bunun yanında Pycharm, Netbeans gibi IDE’leri kullanabilmektedir. Hata ayıklama
ve hızlı kod yazma konusunda araçları ile kolaylık sağlar.
5.
Ücretsizdir, açık kaynaktır.
6.
Geniş kütüphane kullanımı bulunmaktadır.
7. Web servisleri, ağ ve soket programcılığı ve veri analizi konusunda çok kullanılmaktadır.
Python2 ve Python3
Python'un baş geliştiricisi Guido Van Rossum 2.x'de
olan uyumluluk sorunlarına ve bulunan hatalara son vermek için 2.x üzerinde
düzgün bir düzeltme yapmaya karar vermiştir. Bunun sonucunda da 3.x sürümü
ortaya çıkmıştır. Python da bilinmesi gereken en önemli noktalardan biri de
3.x'te yapılan radikal değişikliklerden dolayı Python 2.x ve 3.x birbirini
desteklemez.
Python2 Python3 arasındaki farklar
1. Print fonksiyon kullanımı.
2.
Tamsayı bölme farklılıkları.
3.
Unicode farklılıkları ve byte tipi kullanımı.
4.
xrange() ve next() fonksiyonu kullanımı.
5.
Döngüsel değişkenler kullanımı.
6.
input() ve raw_input() fonksiyonu kullanımı.
7. Yuvarlama işlemleri kullanımı.
Temel Bilgisayar Mimarisi
Bir bilgisayar mimarisi çok kabaca üç bileşenden
oluşur: CPU, RAM ve Disk. Bilgisayarda tüm işlemlerin yapıldığı entegre devre
biçiminde üretilmiş çiplere “mikroişlemci” ya da kavramsal olarak “CPU (Central
Processing Unit)” denilmektedir. CPU elektriksel olarak RAM denilen bellek ile
bağlantı halindedir.
CPU çalışırken sürekli RAM ile iletişim halindedir.
Oradan bilgileri çeker, işler ve oraya geri yazar. Programlama dillerindeki
değişkenler RAM’de yaratılmaktadır. Bilgisayarın elektriğini kestiğimizde CPU
durur. RAM’in içerisindeki bilgiler de kaybolur. Bilginin kalıcılığını sağlamak
için diskler kullanılmaktadır. Diskler manyetik temelli elektromekanik biçimde
olabileceği gibi tamamen yarı iletkenlerle (flash EPROM, SSD de denilmektedir)
de gerçekleştirilebilmektedir.
İşletim Sistemi (Operating System)
İşletim sistemi makinenin donanımını yöneten, makine
ile kullanıcı arasında arayüz oluşturan temel bir sistem programıdır. İşletim
sistemi olmasa daha biz bilgisayarı açtığımızda bile bir şeyler göremeyiz.
İşletim sistemleri iki katmandan oluşmaktadır. Çekirdek (kernel),
makinenin donanımını yöneten kontrol kısmıdır. Kabuk (shell) ise kullanıcıyla
arayüz oluşturan kısımdır. (Örneğin Windows'ta masaüstü kabuk görevindedir. Biz
çekirdeği bakarak göremeyiz.) Tabii işletim sistemi yazmanın asıl önemli kısmı
çekirdeğin yazımıdır. Çekirdek işletim sistemlerinin motor kısmıdır.
Bugün çok kullanılan bazı işletim sistemleri
şunlardır:
- Windows
- Linux
- BSD'ler
- Mac OS X
- Android
- IOS
- Windows Mobile (Windows CE)
İşletim sistemlerinin bir kısmı açık kaynak kodlu
bir kısmı da mülkiyete bağlıdır. Örneğin Linux, BSD açık kaynak kodlu olduğu
halde Windows mülkiyete sahip bir işletim sistemidir. Mac OS X sistemlerinin
çekirdeği açıktır (buna Darwin deniyor) ancak geri kalan kısmı kapalıdır.
Gömülü Sistemler (Embedded Systems)
Asıl amacı bilgisayar olmayan fakat bilgisayar
devresi içeren sistemlere genel olarak gömülü sistemler denilmektedir. Örneğin
elektronik tartılar, biyomedikal aygıtlar, GPS cihazları, turnike geçiş
sistemleri, müzik kutuları vs. birer gömülü sistemdir. Gömülü sistemlerde en
çok kullanılan programlama dili C'dir. Ancak son yıllarda Raspberry Pi gibi,
Banana Pi gibi, Orange Pi gibi güçlü ARM işlemcilerine sahip kartlar çok
ucuzlamıştır ve artık gömülü sistemlerde de doğrudan kullanılır hale gelmiştir.
Bu kartlar tamamen bir bilgisayarın işlevselliğine
sahiptir. Bunlara genellikle Linux işletim sistemi ya da Android işletim
sistemi yüklenir. Böylece gömülü yazılımların güçlü donanımlarda ve bir işletim
sistemi altında çalışması sağlanabilmektedir. Örneğin Raspberry Pi’a biz Mono’yu
yükleyerek C#’ta program yazıp onu çalıştırabiliriz.
Decompiler’lar ve Disassembler’lar
Alçak seviyeli dillerden yüksek seviyeli dillere
dönüştürme yapan (yani derleyicilerin yaptığının tam tersini yapan) yazılımlara
“decompiler” denilmektedir. Örneğin C#’ta yazılıp derlenmiş olan .exe dosyadan
yeniden C# programı oluşturan bir yazılım “decompiler”dır.
Saf makine dilini decompile etmek neredeyse mümkün
değildir. Ancak .NET’in arakodu olan “CIL (Common Intermediate Language)” ve
Java’nın ara kodu olan “Java Byte Code” kolay bir biçimde decompile
edilebilmektedir. C#’ta derlenmiş bir .exe dosyayı yeniden C#’a dönüştüren pek
çok decompiler vardır (örneğin Salamander, Dis#, Reflector, ILSpy gibi). İşte
bu tür durumlar için C# ve Java programcıları kendiileri bazı önlemler almak
zorundadırlar. Ancak C, C++ gibi doğal kod üreten derleyicilerin ürettiği
kodlar geri dönüştürülememektedir.
IDE (Integrated Development
Environment)
Derleyiciler komut satırından çalıştırılan
programlardır. Bir programlama faaliyetinde program editör denilen bir program
kullanılarak yazılır. Diske save edilir. Sonra komut satırından derleme
yapılır. Bu yorucu bir faaliyettir. İşte yazılım geliştirmeyi kolaylaştıran
çeşitli araçları içerisinde barındıran (integrated) özel yazılımlara IDE
denilmektedir. IDE'nin editörü vardır, menüleri vardır ve çeşitli araçları
vardır. IDE'lerde derleme yapılırken derlemeyi IDE yapmaz. IDE derleyiciyi
çalıştırır. IDE yardımcı bir araçtır, mutlak gerekli bir araç değildir.
Microsoft'un ünlü IDE'sinin ismi “Visual Studio”dur.
Apple'ın “X-Code” isimli IDE'si vardır. Bunların dışında başka şirketlerin malı
olan ya da “open source” olan pek çok IDE mevcuttur. Örneğin “Eclipse” ve
“Netbeans” yaygın kullanılan cross-platform “open source” IDE'lerdir. Linux
altında Mono'da “Mono Develop” isimli bir IDE tercih edilmektedir. Bu IDE’nin
Windows versiyonu da vardır.
Python
dünyasında da çeşitli IDE'lerden faydalanılmaktadır. Bazı Python IDE'leri zaten
bazı dağıtımların içerisinde onların bir parçası biçiminde bulunurlar. Bazıları
ise dağıtımdan bağımsız bir biçimde yüklenerek kullanılabilmektedir.
IDLE
(Integrated Development and Learning Environment) isimli minik IDE CPython
dağımının IDE'sidir. Bu nedenle en çok kullanılan Python IDE'lerinden biridir.
Sypder
isimli IDE Anaconda Python dağıtımında default olarak gelen bir Python
IDE'sidir. Dolayısıyla Spyder da yaygın biçimde kullanılmaktadır. Tabii Spyder
Anaconda olmadan bağımsız olarak da kurulabilmektedir.
Bit ve Byte Kavramları
Bilgisayarlar ikilik sistemi kullanırlar. Bu nedenle
bilgisayarların belleğinde, diskinde vs. her şey ikilik sistemde sayılar biçiminde
bulunmaktadır. İkilik sistemde sayıları yazarken yalnızca 1'ler ve 0'lar
kullanılır. Böylece bilgisayarın içerisinde yalnızca 1'ler ve 0'lar vardır.
Her şey 1'lerden ve 0'lardan oluşmaktadır. İkilik
sistemdeki her bir basamağa bit (binary digit'ten kısaltma) denilmektedir. Bu
durumda en küçük bellek birimi bit'tir. Bit çok küçük olduğu için 8 bit'e 1
byte denilmiştir. Bellek birimi olarak byte kullanılır. Bilgisayar bilimlerinde
Kilo 1024 katı anlamına gelir. Yani 1KB = 1024 byte’tır. Mega da kilonun 1024
katıdır. Yani 1MB=1024KB'tır. Giga Mega’nın Tera da Giga’nın 1024 katıdır.
Bilgisayar Dilleri ve Programlama
Dilleri
Bilgisayar bilimlerinde kullanılan dillere
bilgisayar dilleri (computer languages) denir. Bir bilgisayar dilinde akış
varsa ona aynı zamanda programlama dili de (programming language)
denilmektedir. Örneğin HTML bir bilgisayar dilidir. Fakat HTML'de bir akış
yoktur.
Bu nedenle HTML bir programlama dili değildir.
HTML'de de sentaks ve semantik kurallar vardır. Oysa C#'ta bir akış da vardır.
C# bir programlama dilidir.
Güncel
Verilere göre programlama dillerinin sıralaması
Kullanım Alanlarına Göre
Sınıflandırma:
Bu sınıflandırma biçimi dillerin hangi amaçla daha
çok kullanıldığına yöneliktir. Tipik sınıflandırma şöyle yapılabilir:
- Bilimsel ve Mühendislik Diller: C, C++, Java, C#,
Fortran, Python, Pascal, Matlab gibi...
- Veritabanı Yoğun İşlemlerde Kullanılan Diller:
SQL, Foxpro, Clipper, gibi...
- Web Dilleri: PHP, C#, Java, Python, Perl gibi...
- Animasyon Dilleri: Action Script gibi...
- Yapay Zeka Dilleri: Lisp, Prolog, Python, C, C++,
C#, Java gibi...
- Sistem Programlama Dilleri: C, C++, Sembolik
Makina Dilleri
- Genel Amaçlı Diller: C, C++, Pascal, C#, Java,
Python, Basic gibi...
Python Kodlarının Yazım Biçimi
Python'da ifadeleri ayırmak için temel olarak LF
(Windows'ta CR/LF) karakteri kullanılmaktadır. Bu durumda her satıra tek bir
ifadenin yazılması gerekir. Halbuki diğer bazı dillerde ifadeleri sonlandırmak
için ';' gibi ayıraç atomlardan fakydalanılmaktadır. Python'da bir ifade C,
C++, Java ve C#'ta olduğu gibi farklı satırlara bölünememektedir.
Örneğin:
a
=
10
Ifadesi Python'da yazım bakımından geçerli değildir.
Yine Python'da istenirse ya da gerektiğinde ifadeleri ayırmak için ';' atomu
kullanılabilmektedir. Gerçekten de Python'da basit deyimler (simple statments)
aralarına ';' ayıracı konularak aynı satır üzerine yazılabilmektedir.
Örneğin:
a = 10; b = 20; c = 30;
Brada son ';' atomu konulmasa da olurdu. Çünkü zaten
satır sonu (yani LF karakteri) bir ayıraç olarak işlev görmektedir. Ancak
Python'da her deyim tek satır üzerine yazılamaz. Yalnızca basit deyimler bir
arada tek satır üzerine yazılabilir. if, for, while gibi kontrol deyimleri tek
satır üzerine yazılamayacağı gibi tek satırda diğerleri ile birlikte de yazılamaz.
Bu konunun ayrıntıları deyimlerin anlatıldığı bölümde ele alınacaktır.
Python'da Temel Veri Türleri
Tür (type) bir nesnenin bellekte kapladığı alan, ona uygulanacak işlemler (operatörler) ve ona yerleştirilecek değerlerin biçimi hakkında bilgi veren temel bir özelliktir. Her dilde nesnelerin türleri vardır. Python'daki temel türler aşağıdaki tabloda listelenmiştir:
Python Standart Kütüphanesi
Bir işleme yol açan ve işlem sonucunda bir değer
üretilmesini sağlayan atomlara operatör denilmektedir. Örneğin +, -, *, is, is
not birer operatördür. Genellikle operatörler üç bakımdan sınıflandırılırlar:
1.
İşlevlerine Göre Sınıflandırma
2.
Operand
Sayılarına Göre
3.
Operatörün Konumuna göre
Ve Python’
da, operatörleri aşağıdaki gruplara ayırabiliriz.
1.
Aritmetiksel operatörler
Aritmetiksel
operatörler, ortak matematik işlemlerini gerçekleştirmek için sayısal
değerlerle kullanılır.
Operator |
Name |
Example |
+ |
Toplama |
x + y |
– |
Çıkarma |
x – y |
* |
Çarpma |
x * y |
/ |
Bölme |
x / y |
% |
Mod Alma |
x % y |
** |
Üs Alma |
x ** y |
// |
Floor
division |
x // y |
2.
Atama operatörleri
Atama
operatörleri değişkenlere değer
atamak için kullanılır.
Operator |
Örnek Kullanım |
Diğer Kullanımı |
= |
x = 5 |
x = 5 |
+= |
x += 3 |
x = x + 3 |
-= |
x -= 3 |
x = x – 3 |
*= |
x *= 3 |
x = x * 3 |
/= |
x /= 3 |
x = x / 3 |
%= |
x %= 3 |
x = x % 3 |
//= |
x //= 3 |
x = x // 3 |
**= |
x **= 3 |
x = x ** 3 |
&= |
x &= 3 |
x = x
& 3 |
|= |
x |= 3 |
x = x | 3 |
^= |
x ^= 3 |
x = x ^ 3 |
>>= |
x
>>= 3 |
x = x
>> 3 |
<<= |
x
<<= 3 |
x = x
<< 3 |
3.
Karşılaştırma operatörleri
Karşılaştırma
operatörleri iki değeri karşılaştırmak için kullanılır. Karşılaştırma sonucunda
true veya false
değerleri dönecektir.
Operator |
Name |
Örnek |
== |
Eşittir |
x == y |
!= |
Eşit Değil |
x != y |
> |
Büyük |
x > y |
< |
Küçük |
x < y |
>= |
Büyük Eşit |
x >= y |
<= |
Küçük Eşit |
x <= y |
4.
Mantıksal operatörler
Operator |
Açıklama |
Örnek |
and |
Her iki
ifade de doğruysa true değeri döner. |
x < 5
and x < 10 |
or |
İfadelerden
birisi doğruysa true değeri döner. |
x < 5
or x < 4 |
not |
Sonucu
ters çevirir. Yani true ise false, false ise true döner. |
not(x <
5 and x < 10) |
5.
Bitsel Operatörler
Bitsel
operatörler (ikili) sayıları
karşılaştırmak için kullanılır.
Operator |
Ad |
Açıklama |
& |
AND |
Her iki
bit de 1 ise her bit’i 1’e ayarlar |
| |
OR |
İki bitten
biri 1 ise, her biti 1 olarak ayarlar. |
^ |
XOR |
İki bitten
yalnızca biri 1 ise, her biti 1 olarak ayarlar. |
~ |
NOT |
Tüm
bitleri ters çevirir. |
<< |
Zero fill
left shift |
Sıfırları
sağdan içeri doğru iterek sola kaydırır ve en soldaki bitlerin düşmesine izin
verir. |
>> |
Signed
right shift |
En soldaki
bitin kopyalarını soldan iterek sağa kaydırır ve en sağdaki bitlerin
düşmesine izin verir |
6.
Python in / not in Operatörleri
Membership
operatörleri bir dizide bir nesnenin bulunup bulunmadığını kontrol etmek
amacıyla kullanılır.
Operator |
Açıklama |
in |
Dizide
belirtilen değere sahip bir nesne varsa true değeri döner. |
not in |
Dizide
belirtilen değere sahip bir nesne bulunmuyorsa true değeri döner. |
7.
Identity Operatörleri (is / is not)
Operatörün
her iki tarafındaki değişkenler aynı nesneye işaret ediyorsa true, aksi
takdirde false olarak değerlendirilir.
Python’da
her şeyin (ya da başka bir deyişle her nesnenin) bir kimlik numarası (identity)
vardır. Kabaca söylemek gerekirse, bu kimlik numarası denen şey esasında o
nesnenin bellekteki adresini gösterir.
Yorumlar
Yorum Gönder