Resmi Python 3 Kılavuzu - The Python 3 Official Tutorial - Part1
What Will I Learn? / Ne öğreneceğim?
Python is an easy to learn, powerful programming language. It has efficient high-level data structures and a simple but effective approach to object-oriented programming. Python’s elegant syntax and dynamic typing, together with its interpreted nature, make it an ideal language for scripting and rapid application development in many areas on most platforms....
Python öğrenmesi kolay, güçlü bir programlama dilidir. Verimli, yüksek seviyeli veri yapılarına sahip bu dil, nesne tabanlı programlamayı da basit ama etkili bir tarzda ele alır. Python’ın zarif söz dizimi ve dinamik veri tipleri, dilin yorumlanan yapısı ile birleştiğinde, onu pek çok alanda ve çoğu platformda, betik yazma ve hızlı uygulama geliştirme konusunda ideal bir dil haline getirir.
Python’ın yorumlayıcısı ve kapsamlı standart kütüphanesi https://www.python.org/ adresindeki Python web sitesinden belli baslı bütün platformlar için kaynak kod veya ikili paket halinde ücretsiz olarak indirilip özgürce dağıtılabilir. Adı geçen web sitesi aynı zamanda pek çok ücretsiz üçüncü şahıs Python modüllerini, programları, araçları ve ilave belgeleri barındırmanın yanısıra, bunlara nerelerden ulaşabileceğinizi gösteren bağlantılar da içerir.
Python’ın yorumlayıcısı, C veya C++ dillerinde (ya da C’den çağrılabilen başka dillerde) yazılmış fonksiyonlar ve veri tipleri aracılığıyla kolayca genişletilebilir. Python aynı zamanda özelleştirilebilen uygulamalar için bir eklenti dili olmaya da uygundur.
Bu kılavuzda Python dilinin ve sisteminin temel kavramları ile özellikleri, okura teknik olmayan bir dille sunulmuştur. Öğrendiklerinizi deneyebilmek için elinizin altında bir
Python yorumlayıcısının bulunması elbette iyi olur, ama buradaki bütün örnekler kendi içinde bağımsızdır. Bu sayede bu kılavuzu internete veya bilgisayara ihtiyaç duymadan da okuyabilirsiniz.
Standart nesnelerin ve modüllerin açıklamaları için Standart Python Kütüphanesi‘ne bakabilirsiniz. Python Dil Referansı‘nda bu dil daha teknik bir şekilde tanımlanmıştır. C veya C++ dillerinde uzantı yazabilmek için Python Yorumlayıcısının Genişletilmesi ve Başka Uygulamalara İliştirilmesi ile Python/C API Referans Kılavuzu başlıklı belgeleri okuyabilirsiniz.
Ayrıca etrafta Python’ı derinlemesine ele alan çeşitli kitaplar da bulunmaktadır.
Bu kılavuzda, dilin tek tek her özelliğini, hatta yaygın kullanılan özelliklerinin hepsini, tüm ayrıntılarıyla ele almak gayesi güdülmemiştir. Ama bu kılavuzda Python’ın en dikkate değer özelliklerinin pek çoğu sunulmuş olup, bu kılavuz size dilin havası ve tarzı hakkında epeyce 1kir verecektir. Bu kılavuzu bitirdikten sonra Python modüllerini ve programlarını okuyup yazabilmenin yanısıra, Standart Python Kütüphanesi‘nde ele alınan çeşitli kütüphane modülleri hakkında daha fazla bilgi edinmeye de hazır hale geleceksiniz.
Ayrıca sözlük kısmı da göz atmaya değerdir.
Guido van Rossum ve Python geliştirme ekibi (Çeviren: Fırat Özgül)
Requirements / Gereksinimler
- Windows, Mac, OS X veya Unix
- Python 3.x
Difficulty / Zorluk
- Basic / Basit
BÖLÜM 1
1. İştahınızı Kabartalım
Eğer bilgisayarlarla bolca hasır nesir oluyorsanız, otomatikleştirmek isteyeceğiniz birtakım işlerle günün birinde mutlaka karşılaşırsınız. Örneğin çok sayıda metin dosyası üzerinde bir arama-değiştirme işlemi gerçekleştirmek veya bir dizi fotoğraf dosyasını karmaşık bir şekilde adlandırıp yeniden düzenlemek isteyebilirsiniz. Belki de kendi ihtiyaçlarınıza özgü ufak bir veritabanı ya da belli bir amaca yönelik gra1k arayüzlü uygulama veya basit bir oyun yazmak istiyorsunuzdur.
Eğer siz profesyonel bir yazılım geliştirici iseniz, belki de çeşitli C/C++/Java kütüphaneleri ile çalışmanız gerekiyor, ancak o bildik yazma/derleme/test etme/yeniden derleme döngüsünü çok hantal buluyorsunuzdur. Belki de yukarıda bahsi geçen kütüphane için bir test takımı yazıyorsunuzdur, ama test kodlarını yazmak size angarya geliyordur. Ya da belki, bir eklenti dili kullanabilecek bir program yazmışsınızdır, ama uygulamanız için bastan aşağı yeni bir eklenti dili tasarlayıp gerçeklemek istemiyorsunuzdur.
Eğer öyleyse Python tam size göre bir dildir.
Yukarıda bahsi geçen islerin bazıları için Unix kabuk betikleri veya Windows toplu is dosyaları yazabilirsiniz, ancak kabuk betikleri daha ziyade dosyaları bir yerden bir yere taşımaya ve metin verileri üzerinde değişiklik yapmaya yarar; bunlar gra1k arayüzlü uygulamalar veya oyunlar için pek elverişli değildir. Elbette bu isler için C/C++/Java programları da yazabilirsiniz, ancak programın daha ilk taslağını çıkarmak bile çok fazla geliştirme çalışmasına girişmenizi gerektirecektir. Python’ın ise kullanımı daha kolaydır; Windows, Mac, OS X ve Unix işletim sistemlerinde çalışır; isinizi daha çabuk bir şekilde halletmenize yardımcı olur.
Python’ın kullanımı basit olsa da, büyük programlar için, kabuk betikleri veya toplu iş dosyalarının sunabileceğinden çok daha fazla yapı ve destek sunan dört dörtlük bir programlama dilidir. Öte yandan Python C’ye kıyasla daha fazla hata denetimine imkân tanır ve epey yüksek seviyeli bir dil olarak, bünyesinde esnek diziler ve sözlükler gibi yüksek seviyeli veri tiplerini barındırır. Python, sahip olduğu daha genel amaçlı veri tipleri sayesinde Awk ya da hatta Perl’e göre daha geniş bir problem sahasına hitap etmekle birlikte, pek çok şey
Python’da en az bu programlama dillerindeki kadar kolaydır.
Python, programlarınızı, başka Python programlarında yeniden kullanabileceğiniz birtakım modüllere bölmenize de izin verir. Python’da, programlarınız için temel olarak alabileceğiniz (veya Python ile programlamayı öğrenmeye başlamada örnek olarak kullanabileceğiniz) çok sayıda hazır modül bulunur. Bunlar arasında dosya giriş-çıkısı, sistem çağrıları ve soket desteğinin yanısıra, Tk gibi gra1k kullanıcı ara yüzü takımları için ara yüzler sunan modüller dahi vardır.
Python yorumlanan bir dildir; bu sayede, herhangi bir derleme ve bağlama işlemi de gerekmediği için, program geliştirme esnasında zamandan epey tasarruf edebilirsiniz.
Yorumlayıcıyı etkileşimli olarak kullanabilirsiniz. Bu da dilin özelliklerine ilişkin deneme çalışmalarını kolayca yapabilmenizi, tek kullanımlık programlar yazabilmenizi veya aşağıdan-yukarıya (bottom-up) program geliştirme sırasında fonksiyonlarınızı test edebilmenizi sağlar. Python aynı zamanda kullanışlı bir hesap makinesi olma işlevi de görür.
Python, programlarınızı daha öz ve daha okunaklı bir şekilde yazabilmenizi sağlar. Python ile yazılan programlar C, C++ veya Java ile yazılmış muadillerinden genellikle çok daha kısadır.
Bunun çeşitli sebepleri vardır:
- Yüksek seviyeli veri tipleri sayesinde karmaşık işlemleri tek bir deyimle ifade edebilirsiniz;
- Deyimler, başlangıç ve bitiş parantezleri yerine girintilime ile gruplanır;
- Değişkenleri veya argümanları önceden bildirmenize gerek yoktur.
Python genişletilebilir bir dildir: Eğer C biliyorsanız, gerek kritik işlemleri azami hızla gerçekleştirmek, gerekse Python programlarını yalnızca ikili formda mevcut bulunan kütüphanelere (mesela üreticiye özgü bir gra1k kütüphanesine) bağlamak amacıyla Python yorumlayıcısına yeni bir gömülü fonksiyon veya modül eklemek basit bir istir. Artık bu dile iyiden iyiye ısındıktan sonra, Python’ın yorumlayıcısını C ile yazılmış bir uygulamaya bağlayabilir, bunu o uygulama için bir eklenti veya komut dili olarak kullanabilirsiniz.
Bu arada bu dil, adını BBC’de yayımlanan “Monty Python’s Flying Circus” adlı gösteriden alır; sürüngenlerle bir ilgisi yoktur. Dolayısıyla belgelerinizde Monty Python skeçlerine atıfta bulunmanıza izin veriyoruz; hatta izin vermekle kalmıyor, bunu teşvik de ediyoruz!
Artık hepiniz Python’ı merak ettiğinize göre, bu dili biraz daha ayrıntılı bir şekilde incelemeye başlayabiliriz. Bir dili öğrenmenin en iyi yolu onu kullanmak olduğu için, kılavuzu okurken sizi
Python yorumlayıcısını kurcalamaya davet ediyoruz.
Bir sonraki bölümde yorumlayıcıyı kullanmanın inceliklerini göstereceğiz. Vereceğimiz bilgiler oldukça yavan olsa da bunlar daha sonra sunulacak örnekleri deneyebilmeniz açısından önem taşıyor.
Kılavuzun geri kalanında, basit ifadeler, deyimler ve veri tipleri ile başlanarak, fonksiyonlar ve modüller de ele alındıktan sonra nihayet istisnalar ve kullanıcı tarafından tanımlanan sını2ar gibi ileri düzey kavramlara da değinilerek, Python dili ve sisteminin çeşitli özellikleri örnekler yoluyla sunulacaktır.
BÖLÜM 2
2. Python Yorumlayıcısının Kullanımı
2.1. Yorumlayıcının Başlatılması
Python yorumlayıcısı, mevcut olduğu makinelerde, genellikle /usr/local/bin/python3.5
dizininde kuruludur. Unix kabuğunun arama yoluna /usr/local/bin
satırını eklemeniz halinde; kabukta
python3.5
komutunu vererek yorumlayıcıyı başlatabilirsiniz. ( Unix’te, Python 3.x yorumlayıcısının çalıştırılabilir dosyası ön tanımlı olarak python adıyla kurulmaz. Bunun amacı, sistemde aynı anda kurulu olabilecek Python 2.x çalıştırılabilir dosyasıyla herhangi bir çakışmayı engellemektir.
) Yorumlayıcının yer aldığı dizinin hangisi olduğu kurulum sırasındaki bir seçenekle belirlendiği için, başka konumlar da mümkündür. Bu dizinin hangisi olabileceğini etrafınızda Python bilen birilerine veya sistem yöneticinize sorabilirsiniz. (Örn. /usr/local/python
da yaygın bir alternatif konumdur.)
Windows makinelerinde Python genellikle C:\Python35
dizinine kurulur, ama kurulum programını çalıştırdığınızda siz bunu değiştirebilirsiniz. Python’ı kurduğunuz dizini yola eklemek için DOS komut satırında aşağıdaki komutu verebilirsiniz:
set path=%path%;C:\python35
Birincil komut satırında dosya sonu karakterinin (Unix’te Control-D
, Windows’ta Control-Z
) girilmesi, yorumlayıcının sıfır çıkış durumu ile (yani hatasız bir şekilde) kapanmasını sağlar.
Eğer bu ise yaramazsa, yorumlayıcıdan çıkmak için şu komutu verebilirsiniz: quit()
Yorumlayıcı, readline yazılımını destekleyen sistemlerde etkileşimli düzenleme, önceki kodları getirme ve kod tamamlama gibi satır düzenleme özelliklerine sahiptir. Komut satırı düzenleme özelliğinin var olup olmadığını anlamanın herhalde en hızlı yolu, karşılaştığınız ilk Python komut satırında Control-P
tuşlarına basmak olacaktır. Eğer bir bip sesi duyarsanız komut satırı düzenleme özelliği etkin demektir. Eğer hiçbir şey olmazsa veya çıktıda ^P
görürseniz, komut satırı düzenleme özelliğinden faydalanamayacaksınız demektir; bu durumda yapabileceğiniz tek şey, klavyedeki geri tuşunu kullanarak mevcut satırdan karakterleri silebilmek olacaktır.
Yorumlayıcının çalışma şekli bir bakıma Unix kabuğuna benzer: Yorumlayıcı, standart girdi bir tty cihazına bağlıyken çalıştırıldığında, komutları etkileşimli olarak okur ve yürütür; standart girdi olarak bir dosya adı veya dosya argümanı ile çalıştırıldığında ise, o dosyadaki betiği okur ve yürütür.
Yorumlayıcıyı başlatmanın ikinci bir yolu da python -c komut [arg] ...
yapısını kullanmaktır. Böylece, kabuktaki -c
seçeneğine benzer şekilde, komut içindeki deyim(ler) yürütülür. Python deyimleri genellikle boşluklar ya da kabuk için özel anlamı olan başka karakterler içerdiğinden, komutu bütünüyle tek tırnak içine alsanız iyi olur.
Bazı Python modülleri aynı zamanda betik olarak da kullanılabilir. Bu modüller python -m modül [arg]...
seklinde çalıştırılabilir. Böylece modülün kaynak dosyası, sanki dosyanın tam konumunu ve adını komut satırına yazmışsınız gibi yürütülecektir.
Bir betik dosyası kullanılırken, bazen betiği çalıştırdıktan hemen sonra etkileşimli kipe geçmek faydalı olabilir. Bu is betik adından önce -i
seçeneği getirilerek yapılabilir.
Komut satırına ilişkin bütün seçenekler Komut Satırı ve Çevresi adresinde açıklanmıştır.
2.1.1 Argüman Atama
Yorumlayıcıya gönderilen betik adı ve ilave argümanlar, eğer yorumlayıcı bunları tanıdıysa, karakter dizilerinden oluşan bir listeye dönüştürülüp sys
modülü içindeki argv
değişkenine atanır. Adı geçen bu listeye import sys
komutuyla erişebilirsiniz. Bu listenin uzunluğu en az birdir. Yani yorumlayıcı herhangi bir betik adı ve argüman olmadan çalıştırıldığında sys.argv[0]
boş bir karakter dizisi olacaktır. Betik adı (yani standart girdi) ’-’
olarak verildiğinde, sys.argv[0] ’-’
olarak ayarlanır. -c
komut yapısı kullanıldığında sys.argv[0] ’-c’
olarak ayarlanır. -m
modül yapısı kullanıldığında ise sys.argv[0]
modülün tam yolu ve tam adı olarak ayarlanır. -c
komut veya -m
modül yapısından sonra getirilen seçenekler Python yorumlayıcısının seçenek isleme mekanizması tarafından dikkate alınmasa da, bunlar yine de komut veya modül tarafından kullanılmak üzere sys.argv
listesine yerleştirilir.
2.1.2 Etkileşimli Kip
Komutlar bir tty cihazından okunuyorsa, yorumlayıcı etkileşimli kipte demektir. Bu kipte komutlarımızı genellikle üç adet büyüktür işareti ile (>>>
) gösterilen birincil komut isteminden hemen sonra yazıyoruz. Devam satırları için ise, ön tanımlı olarak üç adet nokta ile (...
) gösterilen ikincil komut istemi devreye girecektir. Yorumlayıcı, birincil komut istemini ekrana basmadan önce, sürüm numarası ve telif hakkına dair birtakım bilgiler içeren bir karşılama mesajı gösterir:
$ python3.5
Python 3.5 (default, Sep 16 2015, 09:25:04)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
Devam satırlarına ise, birden fazla satır içeren bir yapıya girilirken ihtiyaç duyulur. Bir örnek olarak, su if
deyimine bir göz atalım:
>>> dünya_düzdür = True
>>> if dünya_düzdür:
... print("Dikkat edin de düşmeyin!")
...
Dikkat edin de düşmeyin!
2.2 Yorumlayıcı ve Çevresi
2.2.1 Kaynak Dosyalarının Dil Kodlaması
Python kaynak dosyaları ön tanımlı olarak UTF-8 ile kodlanmış gibi işlem görür. Bu dil kodlamasında, dünyadaki çoğu dilin karakterleri karakter dizilerinde, tanım adlarında ve yorumlarda aynı anda kullanılabilir. Ancak standart kütüphanede tanım adları için yalnızca ASCII karakterler kullanılır. Taşınabilir olması istenen her kodda uyulması gereken bir kaidedir bu. Bütün bu karakterleri düzgün bir şekilde görüntüleyebilmek için, kullandığınız metin düzenleyicinin de, dosyanın UTF-8 olduğunu anlayabilmesi ve dosyadaki bütün karakterleri destekleyen bir yazı tipi kullanması gerekir.
Bunun yanısıra, kaynak dosyaları için farklı bir dil kodlaması belirtmek de mümkündür.
Kaynak dosyasının dil kodlamasını tanımlamak için #!
ile başlayan başka bir özel yorum satırı daha eklemeniz gerekir:
# -*- coding: dil_kodlamasinin_adi -*-
Bu bildirim sayesinde kaynak dosyadaki her şey, UTF-8 yerine, belirttiğiniz dil kodlamasına sahipmiş gibi değerlendirilecektir. Kullanabileceğiniz dil kodlamalarının listesine Python Kütüphane Referansındaki codecs bölümünden ulaşabilirsiniz.
Örneğin, eğer tercih ettiğiniz metin düzenleyici UTF-8 ile kodlanmış dosyaları desteklemiyorsa ve başka bir dil kodlaması kullanmanızı dayatıyorsa (mesela Windows-1252), su satırı yazabilirsiniz:
# -*- coding: cp-1252 -*-
Böylece Windows-1252 adlı karakter kümesi içindeki bütün karakterleri kaynak dosyanızda kullanabilirsiniz. Dil kodlamasını ayarlayan bu özel yorum satırı, dosya içindeki ilk veya ikinci satır olmak zorundadır.
Posted on Utopian.io - Rewarding Open Source Contributors
Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in:
https://www.scribd.com/document/342680107/resmi-python3-pdf
Your contribution cannot be approved because it does not follow the Utopian Rules, and is considered as plagiarism. Plagiarism is not allowed on Utopian, and posts that engage in plagiarism will be flagged and hidden forever.
Plagiarised from here.
You can contact us on Discord.
[utopian-moderator]
this is just an official translation to share with utopian.io.
I have already indicated in the text of the information of the translator. "Guido van Rossum and Python development team (Translator: Fırat Özgül)"
I published a collection of documents related to open source software and documents so that they do not get lost over time.
Congratulations @pipks! You have completed some achievement on Steemit and have been rewarded with new badge(s) :
Award for the number of upvotes
Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here
If you no longer want to receive notifications, reply to this comment with the word
STOP
Congratulations @pipks! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :
Click here to view your Board of Honor
If you no longer want to receive notifications, reply to this comment with the word
STOP
Do not miss the last post from @steemitboard:
Congratulations @pipks! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :
Click here to view your Board of Honor
If you no longer want to receive notifications, reply to this comment with the word
STOP
Congratulations @pipks! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!