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

Bu blogdaki popüler yayınlar

Python Programlama Diline Giriş III

Python Uygulamaları

HTML Giriş