Mümkün Olan En Küçük Kural Kitabı
Python okunabilir olmasıyla ün kazanmıştır ve bunun büyük kısmı dilin aslında ne kadar az söz dizimi kuralı olduğundan gelir. Önemli olanlar tek bir sayfaya sığar:
- Satır başına bir ifade.
- Girinti yapıyı belirler — süslü parantez yok,
endanahtar kelimesi yok. - Büyük-küçük harf önemlidir.
nameveNamefarklıdır. :bir blok açar; altındaki girintili satırlar bloğun gövdesidir.#bir yorum başlatır.
Aslında hepsi bu. Geri kalanı değişkenler, fonksiyonlar ve standart kütüphane alışkanlıklarıdır; bunları yol aldıkça öğrenirsin. Bu beş kuralı, artık kural gibi hissetmeyi bırakıp dilin doğal şekli gibi hissetmeye başlayacak kadar bağlamla birlikte gezelim.
Satır Başına Bir İfade
Bir ifade eksiksiz bir komuttur — "şunu yazdır," "bunları topla," "onu ata." Python'da her ifade kendi satırına gider:
Üç ifade, üç satır. Sonunda noktalı virgüle ihtiyacın yok ve Python kodunun çoğu kullanmaz. (Noktalı virgülle bir satıra iki ifade koyabilirsin ama kötü stil sayılır. Yapma.)
Bir satır gerçekten uzun olmak zorundaysa, parantez, köşeli parantez veya süslü parantez içinde doğal bir noktada bölebilirsin — Python şikayet etmez:
Veya daha az yaygın olarak, satırı devam ettirmek için sonuna ters eğik çizgi koy. Yapabildiğinde parantez numarasını tercih et — çoğu kod tabanının kullandığı budur.
Girinti Yapısaldır
İşte yeni başlayanları tökezleten kısım. Python'da, bir satırın başındaki boşluk anlamlıdır. Python'a hangi satırların birlikte olduğunu söyler.
Basit bir if'e bak:
if hour < 12: sonrasındaki iki satır dört boşluk girintilidir. Python bu girintiyi "bu iki satır if'in gövdesidir" olarak okur. Son print sol kenara geri dönmüş, bu yüzden Python onu if'in dışında görür.
Girintiyi kaldırırsan if kırılır. Bir boşluk fazla girinti yaparsan if kırılır. Python burada katıdır çünkü girinti zaten yapıdır — bunu destekleyecek { veya end yok.
Bundan çıkan birkaç kural:
- Her girinti seviyesi için dört boşluk seç ve buna bağlı kal. Bu PEP 8 kuralı ve her editörün
.pydosyaları için varsayılanıdır. - Tab ile boşlukları karıştırma. Python 3 her ikisini de kullanan bir dosyayı reddeder. Modern editörler kaydettiğinde tab'ları otomatik olarak boşluğa dönüştürür; seninkinin öyle ayarlı olduğundan emin ol.
- Girinti hataları olacaktır. Olduğunda hata mesajı sana satır numarasını söyler. Git o satırın baştaki boşluğunun kardeşleriyle aynı olduğunu kontrol et.
İki Nokta Üst Üste Bir Blok Açar
İç içe bir blok oluşturan her yapı — if, else, for, while, def, class, with, try — başlık satırını iki nokta üst üste ile bitirir. Girintili olan sonraki satırlar blok gövdesini oluşturur:
Dikkat edilecek iki şey: başlığın sonundaki iki nokta ve gövde satırlarındaki dört boşluk girinti. İki noktayı unutursan Python sana SyntaxError: expected ':' gibi bir şey söyler. O hata nettir — eksik noktalamayı düzelt, tamamdır.
Büyük-Küçük Harf Duyarlılığı
Python Name, name ve NAME'i tamamen üç ayrı şey olarak ele alır. Bu şunlar için geçerlidir:
- Kendi değişkenlerin ve fonksiyonların.
print,len,True,False,Nonegibi yerleşikler.- Modül ve özellik adları.
Bu seni genellikle yalnızca yanlışlıkla bir şeyi büyük harfle yazdığında ısırır. True boolean doğru değeridir; true ise NameError veren tanımsız bir değişkendir. Print(...) print fonksiyonu değildir — bir yazım hatasıdır.
Bir hata "name 'X' is not defined" diyorsa ve onu tanımladığına yemin ediyorsan, önce büyük-küçük harfi kontrol et. On seferden dokuzunda yanlıştır.
# ile Yorumlar
Bir satırda #'dan sonraki her şey bir yorumdur — Python onu tamamen görmezden gelir. Yorumlar gelecekteki okuyuculara (gelecekteki sen dahil) notlar içindir:
Python'un çok satırlı yorum söz dizimi yoktur. Birkaç satıra ihtiyacın varsa birden fazla # satırı kullan. (Bazen üç tırnaklı dizgilerin sözde yorum olarak kullanıldığını görürsün — bu docstring adı verilen ayrı bir şeydir ve fonksiyonlardan bahsettiğimizde ele alacağız.)
Rezerve Kelimeler
Birkaç kelime Python'un kendisi tarafından kullanıldığı için değişken adı olarak yasaktır: if, else, for, while, def, class, return, import, from, as, pass, break, continue, True, False, None, and, or, not, in, is, lambda, try, except, finally, raise, with, yield, global, nonlocal, async, await. Bu listeyi ezberlemene gerek yok. Birini kullanmaya çalışırsan Python hemen şikayet eder.
Herhangi Bir Python Dosyasını Okumak İçin Yeterince Biliyorsun
Az önce okuduğun her kural her Python dosyası için geçerlidir — iki satırlık bir script ve yüz bin satırlık bir proje aynı şekilde. Dilin geri kalanı bu beş fikrin üzerine kuruludur. Bir dosya kafa karıştırıcı görünüyorsa, çözüm neredeyse her zaman önce girintiye dikkat etmektir. Girinti, satırların ne söylediğini okumadan önce bile kodun ne yaptığını sana söyler.
Sırada: biraz daha derinlemesine yorumlar — artı fonksiyonlar ve modüller için Python'un dokümantasyonu nasıl ele aldığı olan docstring'ler.
Sıkça Sorulan Sorular
Python neden girintiyi önemser?
Python hangi satırların birlikte olduğunu anlamak için girintiyi kullanır. Diğer diller kod gruplarını süslü parantez { } içine alırken Python onun yerine tutarlı baştaki boşlukları kullanır. Görsel gürültü daha azdır ama bu da boşluklar konusunda dikkatsiz olamayacağın anlamına gelir.
Python'da kaç boşluk girinti yapmalıyım?
Her seviye için dört boşluk topluluk standardıdır (PEP 8). Çoğu editör bir Python dosyasında Tab'a bastığında dört boşluk ekler. Kesin sayıdan çok tutarlı olmak önemlidir — aynı blokta iki boşluk ve dört boşluk girintileri karıştırmak yaygın bir hatadır.
Python büyük-küçük harfe duyarlı mı?
Evet. Name, name ve NAME üç farklı değişkendir. print ve True gibi yerleşik adlar tam olarak gösterildiği gibi yazılmalıdır — True çalışır, true hata verir.