Bu bölümde Python’da ilk kodumuzu çalıştırıp bu dünyaya “Merhaba” diyeceğiz. Python hem etkileşimli (interactive mode) hem de script modunda kullanılabilir. Bu bölümde her iki ortam tanıtılacaktır.
1.3.1. Merhaba Python – Interactive Mode
Kurulum yaptığımız klasörde “Python” adımda çalışabilir bir dosya olması gerekir. Bu dosyaya çift tıklayıp açalım, karşımıza bir console ekranı gelir. Eğer DOS biliyorsanız buradan da bu exe’yi çalıştırabilirsiniz. Artık Python kodları yazmaya başlayabiliriz.
1 2 3 |
Python 3.4.0 (v3.4.0:04f714765c13, Mar 16 2014, 19:25:23) [MSC v.1600 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> |
Şu an Python yorumlayıcısı bizden gelecek komutları bekliyor.
1 2 3 4 5 |
Python 3.4.0 (v3.4.0:04f714765c13, Mar 16 2014, 19:25:23) [MSC v.1600 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> print("Merhaba ben Python, enter'a basınca yorumlanıp console ekranına gelirim.") Merhaba ben Python, enter'a basınca yorumlanıp console ekranına gelirim. >>> |
Input / Output komutlarından print komutunu kullandık. Bu komutun içine bir metin gönderdik ve çıktı olarak aynı komutu ekrana bastı. Tüm programları dilleri için benzer komutlar vardır. Etkileşimli olayına dikkat edelim, komutu yazıyorum çalışıyor. Bu bölümde birden fazla kod yazsanızda adım adım her enter tuşuna bastığınızda yorumlanır. İşte biz buna etkileşim diyoruz. Siz yazdıkça yorumlanıyor. Fakat, Python uygulamasından çıkınca yazdığımız her şey uçar gider. Bu durumda aklımıza dosyalama gelmeli. Kaynak kodlarımızı bir dosyaya yazılım ve bu dosyayı derleyelim.
1.3.2. Merhaba Python – Script Mode
Bu modda yazılmış bir kod betiğinin yürütülmesi ile başlar ve tüm kodlar yorumlanıncaya kadar devam eder. Kodlar bittiğinde Python ortamında otomatikman çıkılmış olur. Şimdi bu modu destekleyen basit bir dosya oluşturalım. Dosyamız py uzantılı test.py olsun. Kodumuzda:
1 |
print "Merhaba, Python!" |
Dosyamızı kaydettikten sonra çalıştırmaya gelelim. Bunun için biraz Microsoft ortamı için DOS veya Linux ortamı için terminal temel komutlarını bilmelisiniz. Ben DOS için olan komutları vereceğim.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\USER>cd C:\Program Files\Python36 C:\Program Files\Python36>dir p*.exe Volume in drive C has no label. Volume Serial Number is 80EA-3D2F Directory of C:\Program Files\Python36 28.03.2018 17:04 100,504 python.exe 28.03.2018 17:04 98,968 pythonw.exe 28.03.2018 17:06 133,120 pythonw_d.exe 28.03.2018 17:06 135,168 python_d.exe 4 File(s) 467,760 bytes 0 Dir(s) 10,017,837,056 bytes free C:\Program Files\Python36>python C:\test.py Merhaba, Python! C:\Program Files\Python36> |
Öncelikle çalıştır kısmına cmd yazıp terminali açın. Ardından cd (Change Directory) ile Python dizine gidin. Ben 3.6 sürümünün olduğu dizine gittim. Burada Python.exe arıyorum. Emin olmak için dir komutu ile dizin içindeki dosyaları görüntüledim. Burada tüm dosyaları görüntülememek için “p*.exe” ile p ile başlayıp herhangi bir veya birden fazla karakterle devam edip .exe ile sonlanan dosyaları kontrol ettim. test.py dosyamı tam kök dizine yerleştirdim ancak bir proje için kesinlikle tavsiye etmem, bir klasör açıp kodunuzu iyi bir şekilde organize etmenizi öneririm. Daha sonrasında enter tuşuna basınca sonuç görüntülendi ve tekrar DOS komutlarını alabileceğim ekran karşıma çıktı. Burada Linux veya Windows ortamlarında yetkilendirme sorunu ile karşı karşıya kalabilirsiniz. Dosyaya ulaşamadığınız durumda dosya veya klasörün yetkilendirmesini kontrol edin. Windows ortamında sağ tuşa tıklayıp yetkilendirmelere bakabilirsiniz. Linux ortamında ise “chmod” komutu ile yetki verebilirsiniz. Tabii ki her seferinde bu işlemleri yapmak zaman alıcı ve sıkıcı olabilir. Bu durumda bir önceki bölümde anlattığımız IDE’ler bu işi sizi için yapıyorlar.
Yukarıdaki kod çalıştırma satırında (C:\Program Files\Python36>python C:\test.py) python çalıştırma dosyası parametre olarak sadece çalıştırılacak kodun dosya yolunu ve dosya ismini almıştır. python çalıştırma dosyası bunun yanında birçok ek parametre alabilir.
Kullanımı: python [parametre] ... [-c cmd | -m mod | dosya | -] [arg] ...
Parametreler:
-c cmd: program dizgi olarak iletildi (seçenek listesini sonlandırır)
-d: parser(ayrıştırıcı)'dan hata ayıklama çıkışı (yerine PYTHONDEBUG = x)
-E: ortam değişkenlerini göz ardı etme (PYTHONPATH gibi)
-h: bu yardım mesajını yazdır ve çık
1.3.3. Anaconda- Jupyter Notebook
Python kütüphane açısından çok zengin bir dildir. Ancak bu kütüphanelerin hangisinin iyi olduğunu bulmak ve teker teker kurmak zaman alıcı bir süreçtir. İşte bu noktada Anaconda birçok kütüphaneyi bize sağlar. Anaconda ile birlikte gelen web tabanlı Jupyter Notebook uygulaması ile kodlarımızı interaktif bir şekilde web sayfası içinde çalıştırabiliriz. Özellikle siyah-beyaz terminal ekranından sıkılanlar için ve interaktif uygulama yazmak için birebir bir uygulamadır. Derslerimde birçok kodumu bu uygulama üzerinde yazacağım.
1.3.4. help() ile yardım
Günümüzde bir kod yazarken yardım deyince aklımıza ilk yer internet oluyor. Ancak, internet bağlantınız olmasa da Python size yardımcı olabiliyor. Bunun için yerleşik yardım sistemini sunuyor. (help() fonksiyonu interaktif kullanım içindir.) Eğer bir argüman verilmezse, interaktif yardım sistemi yorumlayıcı terminalde başlar (help’den çıkış için CTRL+c kullanılır). Bir liste, fonksiyon, sınıf, metot, anahtar sözcük veya belge konusu olarak sunulan bağımsız değişken konsolda bir yardım sayfası yazdırılır. Bağımsız değişken başka bir nesne ise, nesne üzerinde bir yardım sayfası oluşturulur. Basit bir örnek verelim.
1 |
help(print) |
1 2 3 4 5 6 7 8 9 10 11 |
Help on built-in function print in module builtins: print(...) print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) Prints the values to a stream, or to sys.stdout by default. Optional keyword arguments: file: a file-like object (stream); defaults to the current sys.stdout. sep: string inserted between values, default a space. end: string appended after the last value, default a newline. flush: whether to forcibly flush the stream. |