Python Programlama Dili

Bölüm 1

Başlangıç Bilgileri

Top Navigasyon

Ders 1

1.1 - Python Programlama Dilinin Özellikleri

1.1.1 -Python Kolay Kullanılan Bir Programlama Dilidir

Python Yapısal olarak JavaScript programlama dilinin uygulama kolaylığı ile Java programlama dilinin yapısal sağlamlığını birleştiren bir yeni, modern ve iyi tasarlanmış bir programlama dilidir.

Python programlama dilinde, tüm program öğeleri, nesne yapısındadır. Python pogramlama dilinde, değişken olarak kullanılma amacını taşıyan verileri tanıtan tanıtıcılar, Python derleyicisine göre, bir nesne olan değerleri tanıtmış sayılırlar. Değişken olarak tanıtılan verilere, tanıtılmalarından sonra, Python derleyicisi tarafından, çok yararlı öntanımlı özellikler uygulanır ve bazı yararlı öntanımlı metotlar uygulanabilir hale getirilir. Bu özellik değerlerine programın daha sonraki adımlarında erişilebilir ve kullanımı sağlanmış metotlar uygulanabilir. Bu da büyük bir kolaylık sağlar.

Python programlama dili, gevşek kodlama sistemi olan bir programlama dilidir. Yani, Python programlama dilinde, veri tipleri önceden belirtilmez. Veri tipleri verilere bağlıdır, tanıtıcılara değil, bu yüzden Python derleyicisi, bir tanıtıcı ile tanıtılan verinin değerinden, verinin tipini belirler ve bu veri hangi tanıtıcı ile çağrılırsa çağrılsın, Python derleyicisi bu verinin tipini belleğinde tutar. Python programlamasında, programcı veri tiplerini kollamak zorunda kalmaz. Bir kez bir tamsayıyı tanıtmış olan bir tanıtıcıya, bir başka kez bir sözel veriyi tanıtma görevi verilebilir. Java programlama dilinde, sıkı sıkya zorlanan veri tipi sakınımı, Python programlama dilinde yoktur. Bu konuda, Python programlama dilinde, programcı özgür çalışabilir. Değişkenlere tip tanıtma olmamasının sağladığı özgürlüğük, program yürüşününde değişken değerlerinin izlenmesini, biraz zorlaştırabilir. Fakat programcı, sıkı kurallı tip sakınımı zorunluğu olan Java programlama diline göre, Python programlanmasında, daha rahat çalışma bulur. Python programlamasının, Java'ya göre daha konforlu oluşu, programcıların Python programlama dilini tercih etmelerinin bir başka nedenidir.

1.1.2 - Python Programlama Dili ile Hızlı İş Bitirilir

Python programlama dili, az kod çok iş sistemine göre tasarlanmıştır. Python programlama dilinin sözdizimi (sentaks) daha kompakt ve sözyazımı (semantik) kuralları daha açık ve kısadır. Python programlama dili ile projeler, diğer programlama dillerine göre daha hızlı tamamlanır.

 1.1.3 - Python Programlama Dilinin Kodlarının Okunabilirliği Yüksektir

Python programlama dilinde yazılan programlar, sözdizimleri daha açık olduğundan, programcılar bakaları veya kendileri tarafından yazılmış programları daha kolay deşifre edebilirler.

 1.1.4 - Python Programlama Dili Unicode Desteklidir

Python programlama dili, 3 üncü sürümünden itibaren varsayılan olarak Unicode (UTF-8) desteklidir. Bunun anlamı, hem verilerde, hem de program tanıtıcılarının isimlendirilmesinde Türkçe Karakterlerin kullanılabileceğidir. Bu olanak, Türkçe program yazanlar için büyük bir avantaj oluşturur. Python derleyicisi, varsayılan olarak, Python programlarının UTF-8 karakter kodlaması ile yazılmış olduğunu kabul eder. Eğer program yazımında, başka bir karakter kodlaması kullanılacaksa, program içinde kullanılacak karakter kodlaması Python derleyicisine bildirilir. Fakat, UTF-8 kodlamasını kullanacak kullanıcılar için, programlarda, bir karakter kodlaması uyarıcısının kullanılmasına gerek yoktur. Biz de programlarımızda Türkçe karakterler kullanacağız ve bu programlarda tüm Türkçe karakterler UTF-8 uyumlu olduğunda, hiçbir bidirim yapma gereği olmayacaktır.

 1.1 5 - Python Programlama Dili Herşey İçinde Bir Dildir

Python programlama dili, geniş kitaplıklara sahiptir ve bu kitaplıklar, kullanıcılar tarafından kolaylıkla çağrılıp kullanılabilir. Bu konuda şu anda Java en çok kitaplık sayısına sahipken, Python buna çok yaklaşmıştır. Kitaplıklar özgün çalışır ve ana programa yük bindirmez. Programcılar çoğu kodları hazır kitaplıklardan kullanırlar. Kitaplıklar o denli gelişmiştir ki, her proje grubu Python programlama dilinin kendi işleri için yaratılmış olduğunu düşünür. Bu düşünce, özellikle matematik için geçerlidir. Python programlama dili, matematik uygulamaları için çok uygun bir uygulama dilidir. Hatta, son yıllrda, Python programlama dili öğrenimi, bilgisayar destekli matematik öğrenimi için bir ön koşul haline gelmiştir. Bu Python çalışmalırınında ana amacı, bilgisayar destekli matematik öğreniminde, Python programlama dilinin olanaklarından yararlanmaktır.

 1.1.6 - Python Programlama Dili Kodları Her Platformda çalışır

Python programlama dili, önce özel byte-code'una derlenen, sonra da çalıştığı ortama özel yorumlayıcısı ile yorumlanan modern tasarımlı bir dildir. Bir kez derlenmiş olan bir Python programı, özel yorumlayıcısı olan her ortamda yorumlanabilir ve aynen yazıldığı gibi çalışır. Bu çalışma şekli, Java ile benzerlik gösterir. Fakat, platformlarası olmak için, derlemeden sonra, özel platform yorumlayıcısı tarafından yorumlanma gereği, programlarının çılşmasını biraz yavaşlatır. Yine de, herkesin kullanıdığı yeni donanımlar, bu hız eksilmesini, hissedilmeyecek kadar aza indirmişlerdir.

 1.1.7 - Python Programlama Dili Açık Kaynaklıdır

Python programlama dili açık kaynaklı ve ücretsiz bir platformdur. Ticari olarak geliştirilecek programlar için, bir royalty ücreti ödenmesine gerek yoktur. Kaynak kodları açıktır ve herkes tarafından indirilip özelleştirilebilir.

 1.1.8 - Python Programlama Dilinin Python 2 ve Python 3 sürümleri

Python eski sürümü 2.7 ile güncel sürümü, 3.4 arasında çok ufak farklılıklar bulunmaktadır. Bu farklıklar nedeni ile, Python 2.x ile yazılmış programlar Python 3.x derleyicilerinde hata verecektir. Python 3.x kitaplıkları da, henüz Python 2.x kitaplıkları gibi çok zengin değildir, fakat gün geçtikçe uyum artmaktadır. Buna rağmen, ilerlemenin engellenebilmesi söz konusu değildir. Tüm dünyada olduğu gibi, bu çalışmada da güncel sürüm olan 3.4 sürümü üzerinde durulacaktır.

 1.1.9 - Python Programlama Dili ve SAGE Bilgisayar Destekli Matematik Platformu

En yeni (BGMP) olan SAGE alt yapısı Python programlama diline dayandığından, SAGE BGMP (Bilgisayar Gözetiminde Matematik Platformu) sisteminin kullanımı, geniş ölçüde Python programlama dili bilgisine gereksinme göstermektedir. Bu yüzden burada Python programlama dili üzerinde bilgi kazanmaya çalışmaktayız. Ancak bu şekilde, SAGE ile çalışmaya hazırlıklı hale gelebileceğiz. Son çalışmalarda, SAGE platformu da, kullanıcı kodlarında Python 3 kodlarının kısmen desteklenebilmesini sağlayacak adımlar atmıştır. Bu şekilde, Python 3 ile yazacağımız programları, SAGE platformunda çalıştırma olanağı bulabileceğiz. Bu da, bizim için, ilerletici bir özellik olmaktadır.

1.2 - EBNF Tanım Yöntemi

Genişletilmiş Backus-Naur Formları (Extended Backus-Naur Forms)ile tanım yöntemleri, bilgisayar dillerinin öğelerinin yapılanmalarını açıklayıcı bir yöntem olarak geliştirilmiştir. EBNF formlşarı, sözel veya grafiksel olarak açıklama sağlayabilirler.

Python programlama dilinin öğelerinin sözdizimi (sentaks) kurallarının açıklanması için de, Genişletilmiş Backus-Naur Formlarını (Extended Backus-Naur Forms) kullanacağız. EBNF formları birkaç eşdeğer alternatif olarak kullanılabilmektedir. Bu çalışmada, Python standart dokümantasyonunda kullanılmış olan EBNF form yöntemini izleyeceğiz. EBNF kuralları aşağıdaki gibi düzenlenir:

EBNF formülasyonunda kullanılan işaretler, ::= , | , [, ] , ( , ) , < , > dir. Burada, ::= oluştur anlamına gelir.

Bir ENBF tanımlama örneği,

    isim      ::= küçük_harf (küçük_harf | "_")*
küçük_harf ::= "a"..."z"

şeklindedir. Bu örnekte, isim, bir program öğesinin ismidir. Örnek olarak belki isim = tanıtıcı veya isim = fonksiyon dur. Bu tanımda, ismin nasıl oluşturulabileceğinin kurallarını, ENBF notasyonu ile belirtmektedir. Tanımda yer alan küçük_harfler grubunun tanımı da yapılarak yeni tanımın, bilinen tanımlar üzerine inşa edilmesi sağlanmaktadır.

Yukarıdaki örneğin ENBF formunun açıklanmasını yapalım. İlk satırda, tanım sonucu formüle edilmektedir. İlk karakter mutlaka bir küçük harf karakteri olacaktır. İkinci harf, ya yine bir küçük harf karakteri olacak veya bir alt bağlaç olabilecektir. Üçüncü ve sonraki karakterler, ikinci karakter gibi ya bir küçük harf karakteri olacak yada bir alt bağlaç olabilecektir. Bu tanımda, isim isminin uzunluğu istendiği kadar uzun olabilecektir. Tanımda yer alan küçük_harf grubunun tanımı bir alt satırda verilerek, isim tanımında yer alan bütün grupların önceden tanıtılmış olması sağlanmaktadır.

llk satırdaki boşluk, sadece okunma kolaylığı olması için kullanılmıştır. İlk karakter ve ikinci karakter arasında boşluk bırakılmayacaktır.

Dikkat edilirse, tanımda hiçbir açık bırakılmamamış, son tanım daima tanımlanmış değerler üzerinden yapılmaktadır.

Hiç bilgi eksikliği bırakılmamış olduğu varsayılan bu tanımda tek eksiklik, a dan z ye kadar seçilebilecği belirtilen karakterlerin, hangi alfabeye göre seçilebileceğinin belirtilmemiş olmasıdır. Bu durumda, İngiliz alfabesinin harfleri ile kısıtlı kalınmalıdır. Ne kadar tamamlanmış olmasına çalışılmış olunursa olunsun, her tanımda daima bazı belirsizlikler olabilmektedir.

1.3 -Python Programlama Dilinin Karakter Kümesi

Küçük Harf (a|b|c|d|e|f|g|h|i|||k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) (Unicode destekli)
Büyük Harf (A|B|C|D|E|F|G|H|I|||K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z) (Unicode destekli)
Sayı (0|1|2|3|4|5|6|7|8|9)
Genel Kullanımlı İşaretler (|(|)| [ | ] | { | } |+|-|*|/|%|!|&| | |~|^|<|=|>|,|.|:|;|$|?|#)
Grafik ( Küçük Harf |Büyük Harf | Sayı | Genel Kullanımlı İşaretler)
Özel Kullanımlı İşaretler (' | " | \)
Boşluk Karakterleri ( | ! | - (Boşluk, Tab veya Yeni Satır))

Python programlarında, veri veya tanıtıcı olarak, kullanılabilecek tüm karakterler yukarıda belirtilmiştir. Unicode desteği olduğundan, kullanılabilecek karakterler arasına ğ,ı,ç,ü,ö,ş,İ,Ş,Ğ,Ü,Ö,Ç karakterleri de kullanılabilecektir. Bu durumda tüm Python 3 program öğelerinin tanıtımında, Türkçe karakterler ve bazı işaretler sorunsuz olarak kullanılabilcektir.

Genişletilmiş BNF tanımlarının, hiçbir belirsizliğe yer bırakmayacak şekilde açık bir şekilde yapılabildiği gözlenebilir. Tüm tanımlar, ya doğrudan yapılmış, ya da önceden yapılmış tanımlardan yararlanılanılarak gerçekleştirilmiştir.

1.4 - Python Programlama Dilinde İsimlendirme (Tanıtıcıların Adlandırılması)

Python programlama dilinde tanıtıcıların sözdizimi (sentaks) kuralları için, Genişletilmiş Backus-Naur Formlarını (Extended Backus-Naur Forms) kullanacağız. Tanıtıcıların Python 3.4 dokümantasyonunda https://docs.python.org/3.4/reference/lexical_analysis.html#grammar-token-id_start verilmiş olan EBNF formülasyonu aşağıdaki gibidir:

Python Tanıtıcıları (Identifiers)

identifier   ::=  xid_start xid_continue*
id_start ::= <all characters in general categories Lu, Ll, Lt, Lm, Lo, Nl, the underscore, and characters with the Other_ID_Start property>
id_continue ::= <all characters in id_start, plus characters in the categories Mn, Mc, Nd, Pc and others with the Other_ID_Continue property>
xid_start ::= <all characters in id_start whose NFKC normalization is in "id_start xid_continue*">
xid_continue ::= <all characters in id_continue whose NFKC normalization is in "id_continue*">

The Unicode category codes mentioned above stand for:

All identifiers are converted into the normal form NFKC while parsing; comparison of identifiers is based on NFKC.

A non-normative HTML file listing all valid identifier characters for Unicode 4.1 can be found at http://www.dcl.hpi.uni-potsdam.de/home/loewis/table-3131.html.

Orijinal resmi tanım, bir anlam kayması olmaması için olduğu gibi verilmiştir.

Python 3 program öğelerinde kullanılmak üzere yeni Unicode karakterleri kabul etmiştir. Bu konudaki bilgiler PEP 1331 de verilmiştir. Kullanılabilecek Unicode karakterleri unicodedata modülünde kullanılan karakter veri temeline dahil edilmiştir..

Unicode desteğinin bizi ilgilendiren kısmı, tüm Türkçe alfabe karakterlerinin tanıtıcı ismi olarak kullanılabileceğidir.

EBNF kodlamasını okuyalım:

İlk olarak bu kodlamanın Python Tanıtıcıları (Python Identifiers) için olduğu belirtiliyor.

İlk satırda, bir tanıtıcının ilk başlangıç sadece bir harf veya bir alt çizgi karakteri olabileceğini belirtiyor. Rakkamların tanıtıcı ilk karakteri olarak kullanılması engelleniyor.

Tanıtıcı ikinci karakteri olarak aynı ilk karakterin oluşturulmasında kullanılan karakterler veya sayılar, bazı işaretler ve ek karakterler kullanılabiliyor. İkinci karakter seçeneğinin üzerinde olan yıldız, bu seçeneğin istendiği kadar tekrarlanabileceğini, veya hiç kullanılmayabileceğini belirtiyor. Yani Python 3 tanıtıcıları, tek karakterden veya istendiği kadar çok karakterlerden oluşabilir. İlk karakter daima sayısal olmayan bir karakter veya bir alt bağlaç olabilir. İkinci ve varsa onu izleyen karakterler, sayısal ve bazı işaretlerden oluşabiliyor. Python tanıtıcıları istendiği kadar uzun olabilir ve büyük harf/küçük harf kodlamasına duyarlıdır.

Python derleyicisi, tüm tanıtıcı isimlerini NFKC normalizasyonu yaparak saklar. Tüm tanıtıcı karşılaştırmaları NFKC normalize değerler üzerine yapılır.

!, @, #, $, % karakterleri Python programlama dili tanıtıcılarında kullanılmaz.

__*__ şeklindeki isimler Python derleyicisinin özel olarak tanımlanmış program öğelerine rezerve ettiği isimlerdir. Bu isimler tanıtıcı olarak kullanılamaz. Burada * işareti, DOS programlama dilinde olduğu gibi herhangibir isim anlamındadır.

__* şeklindeki isimler sınıf iç değişkenleri için saklanmıştır. Bu amaç dışında kullanılmaması gerekir.

_* şeklindeki isimler Python derleyicisi tarafından interaktif modda en son sonucu saklamak için kullanılmaktadır. Her nekadar program modunda etkisi olmadığı söylense de, tavsiyemiz bu tür tanıtıcı isimlerinin kullanılmaması yönündedir.

Python programlama dilinde, değişken isimleri, fonksiyon isimleri, nesne isimleri gibi tanıtıcı (identifiers) isimleri, aşağıda görülen saklı isimlerle (keywords) aynı olamaz:

Python Programlama Dilinde Saklı Sözcükler

False class finally is return
None continue for lambda try
True def from nonlocal while
and del global not with
as elif if or yield
assert else import pass  
break except in raise  

Python programlama dilinde 30 tane saklı sözcük (keyword)bulunur. Bu saklı sözcüklere Python derleyicisinin komut satırına (chevron) >>> help('keywords') yazılarak erişilebilir.

EBNK formülasyonu uygulanır ve ek kısıtlamalar gözönüne alınırsa, sözdizimi (sentaks) açısından geçerli Python programlama dili tanıtıcılarının oluşturulması sağlanır. Buna rağmen, tüm programlarda olduğu gibi, Python programlama dili tanıtıcılarının da bazı sözyazımı (semantik) kurallarına uymaları beklenir. Sözyazımı (semantik) kurallarına uyulması zorulu değildir. Fakat uygarlık gereği, programcılardan yerleşmiş sözyazımı kurallarına uymaları uygun olur.

Python tanıtıcılarının sözyazımı (semantik) önerileri :

Python 3.x sürümleri, UTF-8 desteklidir. Tanıtıcılarda kullanılabilecek Unicode normalizasyon karakterleri, http://www.dcl.hpi.uni-potsdam.de/home/loewis/table-3131.html sayfasında görülebilir. Bu tabloya göre tanıtıcı isimleri, Çince dahil birçok dilden olabildiği gibi, Türkçe de olabilir. Fakat, Türkçe tanıtıcı isimlerinin kullanımı için iki sakınca belirtilebilir. Bunlardan ilki, Türkçe tanıtıcıların programın uluslarası alanda okunmasını zorlaştıracağıdır. İkinci sakınca da Python derleyicisinin ASCII dışında bir tanıtıcı karakterine rastladığında, bu karakterin kullanılabilirliğinin incelenmesi için, unicodedata modülü veri temelinde araştırma yapacağıdır. Bu durumda, program hızı düşeceğinden Türkçe karakterlerin kullanılması, sakıncalı olacaktır. Bu konuda eğitim amaçlı programların dışında, tanıtıcı isimlendirmelerinde Türkçe karakterlerin kullanılması sağlık verilmez.

Tanııtıcı isimlerinin başlangıç karakterleri olarak "l" (küçük L) , "I" Büyük I) karakterlerindenin kullanımından kaçınmak yararlı olacaktır. Çünkü, bunlar 1 sayısı ile ve birbirleri ile karıştırılabilir.

Eşsesli (Homophones) (EtienneDeLaBoetie ve EtyenDöLaBoeti gibi), eşkılıflı (Homoglyph) (Der_kenar ve Derkenar gibi) ve aynanın aksi isimlendirmelerden (hotel_Marmara ve marmara_Hotel gibi) kaçınılması sağlık verilir.

Python programlama dili tanıtıcıları istendiği kadar uzun olabilir. Programların kolay izlenebilmesi için, amacı açıkça belirten isimler kullanılması yararlı olacakltır. Yine de, fazla klavye kullanımını gerektirecek kadar uzun isimlendirmelerden kaçınılmasında yarar bulunmaktadır.

Python tanıtıcılarının EBNF düzenlemesini ve ek kısıtlamaları gözönüne alarak geçerli tanıtıcıları oluşturmaya çalışalım:

İlk olarak başlangıç karakterini seçmeye çalışalım. Başlangıç karakterinin seçimi için EBNF düzenlemesinin ilk satırı, Tanıtıcı ilk karakterinin sayısal olmayan bir karakter veya bir alt bağlaç olabileceği şeklindedir. İkinci karakterin seçimi için daha çok alternatifimiz var. İkinci karakter ya bir tanıtıcı ilk karakteri (yani ya bir küçük ya bir büyük harf veya bir alt çizgi) veya bir sayı veya sakıncalı olmayan bir işaret olabilir. Biz bir 3 sayısı seçelim. Bu şekilde oluşturacağımız tanıtıcı için geçerli ilk iki karakter, e3 oldu. Üçüncü karakter aynen ikinci ikinci karakterinin seçiminde uygulanan seçeneklerin tekrar edilmesi ile bulunur ve bu sefer 0 sayısı seçilebilir. Devam edersek, e304s3 karakter katarını bulabiliriz. Bu sözdizimi (sentaks) açısından geçerli bir Python tanıtıcısıdır. Çünkü, hem ENBF düzenlemesini karşılamakta, hem de bir saklı Python sözcüğü (keywords) ile çakışmamakta, hem de kullanımı yasaklanmış karakterler içermemektedir. Bu tanıtıcının sözyazımı geçerli, bu nedenle Python derleyicisi, bu tanıtıcının bir değişkeni veya başka bir Python programlama dili öğesini tanıtmasına itiraz etmeyecektir (yani hata mesajı verip programı durdurmayacaktır).

Yeni oluşturulmuş e304s3 tanıtıcısının sözdizimi (sentaks) tamam, ama sözyazımı (semantik) için aynı şeyi söylemek zor. Eğer bilinen bir kod adı değilse, bu tanıtıcının bir anlamı yoktur. Yani insanlara belirli bir şeyi çağrıştırmamaktadır.

Python tanıtıcılarının EBNF formülasyonu ve ek kısıtlamalar gözetilerek oluşturulan geçerli örnekleri, e304s3, _34, _e_, __d__, dosya1, Hasan, Hasan_Ali, Hüseyin, Bakır_Dağı tanıtıcıları olabilir.

Python programlama dili , büyük / küçük karakterlere duyarlı bir bilgisayar dilidir. Python derleyicisi, girdi ve Girdi adlandırmalarını farklı tanıtıcı isimleri olarak değerlendirir.

Sözdizimi doğru olan her Python tanıtıcısı, Python programlama dilinin her ögesinin tanıtımı için kullanılabilir. Fakat, bu konuda her programlama diinde bazı kurallar ortaya konulmuştur. Programcıların bu kurallara uymaları zorunluğu yoktur. Fakat, uzun vadede, programların bakımları için, okunurluğunun arttırılabilmesi için, kullanımda artık bir anayasa haline gelmiş, herkes tarafından kabul edilmiş, hatta belki de saygın kuruluşların yönergeler çıkararak uyulmasını sağlık verdiği bazı kurallar, artık bir tür uyulması zorunlu isimlendirme yasaları haline gelmiş olabilir (değişkenleri tanıtan tanıtıcıların ilk karakterinin küçük harf olmasının sağlık verildiği gibi). Yine de her durumda, kullanıcıyı bağlayan tek kural, kullandığı tanıtıcının sözyazımı kurallarına uygun olmasıdır. Zaten bir programlama dilinin sözyazımı kurallarına akırı bir tanıtıcı kullanılmak istenirse, program çalışmaz. Onun dışındaki kurallara, programcının uyması zorunlu değildir. Ama, herkes tarafından uyulmakta olan kurallara aykırı tanıtıcı isimleri kullanıldığında, yazılan programın okunabilirliği azalır. Okumakta zorluk çekecek kişiler arasında, kendi yazdığı uyumsuz programı, üç ay sonra okumaya çalışan yazarın kendisinin de bulunması, "kendim ettim kendim buldum!" sözünün bir örneği olabilir.

Python programlama diinde farklı veri tiplerini tanıtan tanıtıcı isimlerinin seçimi için Python Enhacement Proposals (PEP), tanıtıcı adlarının seçiminde, aşağıdaki kuralların gözetilmesini sağlık vermektedir.

Modül, paket isimleri için, tümü küçük harflerden oluşan kısa isimler şeçilmeli, gerektiğinde alt bağlaç (_) kullanılabilir. Örnek sys, math

Fonkiyon isimleri için, tümü küçük harflerden oluşan isimler şeçilmeli, gerektiğinde alt bağlaç (_) kullanılabilir. Örnek toplama() , ilk_fonsiyon().

Değişken isimleri için, tümü küçük harflerden oluşan isimler şeçilmeli, gerektiğinde alt bağlaç (_) kullanılabilir. Örnek, değer_1, kontrol.

Sınıf isimleri için, İlk harfi büyük, devamı küçük harf, ilk anlamlı sözcük yine büyük harf, ve bu şekilde devam eden Java programlama dili ile aynı olan yazım şekli kullanılmalı. Buna yakıştırma olarak deve hörgücü yazılımı adı verilmektedir. Örnek : ElektrikŞebekesiAbonesi, İşletmeİdarecisi, SanalSistem.

Sabitler için, tümü büyük harfler kullanılmalı. Gerektiğinde alt bağlaç (_) kullanılabilir. Örnek, PI, YER_ÇEKİMİ_İVMESİ

İçerlekler 4 karakter içerlek yazılmalı (bu aynı zamanda derleyicinin zorunlu kuralıdır). Sadece boşluk karakteri (space) kullanılmalı, tab karakteri kullanılmamalıdır.

Karşılaştırmalar, hiçbir zaman True veya False saklı sözcüklerine karşı yapılmamalı, if değişken: veya if not değişken: şeklinde düzenlenmelidir.

1.5 - Python Programlarında Yorum Satırları

Python programlarında tek satırlı yorumlar, # işaretini izleyen karakterlerdir. Python derleyicisi, bu karakterleri okumaz ve değerlendirmez. Örnek olarak,

program adımı # Bu bir uyarıdır : Dünyalılar, bu değeri mutlak olarak gerekmediği sürece değiştirmeyin !!!

program satırında, Python derleyicisi, program adımını veya adımlarını, (çünkü aynı satırda birden program adımı olabilir) değerlendirir fakat, tek satırlı yorum işareti # yi izleyen hiçbir karakteri okumaz ve değerlendirmez. Bu karakterler, programcılara mesaj olarak işlev görürler.

Python programlarında birden çok satırın Python derleyicisinden saklamak için, bu satırlar """, çok satırlı yorum işaretleri arasına alınır. Örnek,

"""
Yorum Satırları
"""
program adımları...

Çoklu yorum satırlarının başlangıcı, """ ile başlar ve gerektiği kadar yorum satırından sonra yine """ işareti ile tamamlanır.

Yorumlar programın en önemli kısmlarından biridir. Bir programın çalışması için gerekli bilgiler mutlaka yorum satırlarında belirtilmelidir. Yine de, bu konuda da aşırıya kaçmamak gerekir. Yorumlar gerektiği kadar olmalı fazla söz kabalığındanan kaçınılmalıdır. Yorumlar kullanıcılara değil, programcılara hitap ederler. Programcılar da, az söz ile çok şey anlayabilirler. Zaten, "Anlayana Sivrisinek Saz, Anlamayana Davul Zurna Az!" denilmiştir. Fazla yorum sözcükleri derleyicileri yorar, programı yavaşlatır. Herşeyde olduğu gibi, yorumların da azı karar, çoğu zarardır.

1. 6 - Python İşlemcileri

EBNF Tanımı: işlemci (operator) (Python işlemcileri)

işlemci <== ( + | - | * | / | // | %- | ** | = | != | < | > | <=| >= | & | | | ~ | ^ | << | > | and | in | is | not | or)

 Python programlama dili işlemcilerinden bazıları düşük düzey yani, assembly düzeyindeki işlemler için kullanılır. Bu tip işlemler, Python programlama dilinde çok ender uygulanır ve hatta gereksiz sayılabilir. Çalışmalarımızda bu işlemcilere gerek duymayacağız. Bazı işlemciler özel tipte veriler olan, nesneler, listeler (lists), koleksiyonlar (tuples) ve sözlükler (dictionary) tipinde veriler ile uygulanır. Bu işlemcileri, uygulandıkları veri tipleri le birlikte inceleyeceğiz. Bazı işlemciler karşılaştırma işlemcileri olarak adlandırılır ve verilerin karşılaştırılmasında kullanılır. Bazıları Mantıksal (Logical) işlemcilerdir. Bunları da, karşılaştırma işlemleri incelendiğinde uygulayacağız.

1.7 - Python Veri Tipleri

Python programlama dilinin veri tipleri:

Ayrıca, değişkenlere atanabilen, fonksiyonlar, lambdalar, nesneler, dosya tanıtıcıları gibi topluluklar da veri tipi olarak kabul edilirler.

Python derleyicisi, tüm bu verileri, istisnasız olarak, nesne yapısında olarak algılar ve öntanımlı metotlerın uygulanmasına olanak sağlar.

Tüm bilgisayar programlama dillerinde olduğu gibi, Python programlama dilinde de bazı veriler eklenti veya çıkarma yapılabilir. Bu veri tiplerine eklenti yapılabilen (mutable) veri tipleri adı verilir. Bazı veri tipindeki değerlere ise, ekleme veya çıkarma yapılamaz. Bu veri tipleri de, da eklenti yapılamayan (immutable) veri tipleri olarak tanımlanırlar. Sayısal veriler, sözel veriler, kolleksiyonlar (tuples), donmuş kümeler (frozen sets), eklenti veya çıkarma yapılamayan (immutable) verilerdir. Listeler, sözlükler (dictionaries) ve kümeler (sets) eklenti veya çıkarma yapılabilen (mutable) verilerdir.

Ekleme veya çıkarma yapılamayan (immutable) veriler, bir kez atandıktan sonra değiştirilemezler. Bu verilerde değişiklik yapılması gerekirse, değişen yapıların yeni bir değişkene atanması gerekir.

Genişleyebilen veya büzülebilen (mutable) veri tiplerinden değerler bir kez atandıktan sonra, tanıtıcılarının belirtiği bellek alanlarında güncel değerleri bulunur. Bu değerlerin bir kısmının silinmesi veya bu değerlere yeni kısımlar eklenmesini sağlayan öntanımlı metotlar tanımlanmıştır. Yani, bunlar bir kez atandıktan sonra, sürekli olarak yenilerek güncellenebilir ve atanmış oldukları tanıtıcı yardımı ile güncel değerlerine erişilebilir.

Python programlama dilinde, tüm verilerin nesne yapısında olarak kabul edilmesi ve bu verilerin öntanımlı özelliklerinin olması, Python programlama dilinde, sistematik bir veri tipi incelemesinin ancak nesneler üzerinde ön bilgilere sahip olduktan sonra yürütülebileceği gerçeğini ortaya çıkarır. Bu nedenle, bu çalışma sırasında sıradışı ve devrimci bir yol izleyerek, önce fonksiyonları, sonra da içinde fonksiyonların da bulunabildiği nesneleri tanıtmakla işe başlayacağız.