• Sonuç bulunamadı

Python Programlarını Kaydetmek

3.2 Windows Sistemi

Windows kullanıcıları IDLE adlı metin düzenleyici ile çalı¸sabilirler. IDLE’a ula¸smak için Ba¸slat/Programlar/Python/IDLE (Python GUI)yolunu takip ediyoruz. IDLE ilk ba¸slatıldı˘gında

¸

söyle bir görünüme sahip olacaktır:

Burada gördü˘gümüz >>> i¸saretinden de anlayabilece˘gimiz gibi, bu ekran aslında Python’ın etkile¸simli kabu˘gunun ta kendisidir... Dilerseniz, etkile¸simli kabukta yapaca˘gınız i¸slemleri bu ekranda da yapabilirsiniz. Ama ¸su anda bizim amacımız etkile¸simli kabukla oynamak de˘gil.

Biz Python programlarımızı yazabilece˘gimiz bir metin düzenleyici arıyoruz.

Burada File menüsü içindeki New Window dü˘gmesine tıklayarak a¸sa˘gıdaki ekrana ula¸sıyoruz:

˙I¸ste Python kodlarını yazaca˘gımız yer burası. ¸Simdi bu bo¸s sayfaya ¸su kodları ekliyoruz:

a = "elma"

b = "armut"

c = "muz"

print "bir", a, "bir", b, "bir de", c, "almak istiyorum"

Kodlarımızı yazdıktan sonra yapmamız gereken ¸sey dosyayı bir yere kaydetmek olacaktır.

Bunun için File/Save as yolunu takip ederek dosyayı deneme.py adıyla masaüstüne kaydediyoruz. Dosyayı kaydettikten sonra Run/Run Module yolunu takip ederek veya do˘grudanF5 tu¸suna basarak yazdı˘gımız programı çalı¸stırabiliriz. Bu durumda ¸söyle bir görüntü elde ederiz:

E˘ger programınızı do˘grudan komut satırını kullanarak çalı¸stırmak isterseniz ¸su i¸slemleri yapın:

1. Ba¸slat/Çalı¸stıryolunu takip edip, açılan pencereye “cmd” yazın veENTER tu¸suna basın.

2. ¸Su komutu vererek, masaüstüne, yani dosyayı kaydetti˘giniz yere gelin:

cd Desktop

Windows’ta komut satırı ilk açıldı˘gında C:\Documents and Settings\kullanici_adi gibi bir dizinin içinde olacaksınız. Dolayısıyla yukarıda gösterdi˘gimizcd Desktop komutu sizi masaüstünün oldu˘gu dizine götürecektir. Tabii e˘ger siz komut satırını farklı bir dizin içinde açmı¸ssanız tek ba¸sına yukarıdaki komutu vermeniz sizi masaüstüne götürmez. Öyle bir durumda ¸suna benzer bir komut vermeniz gerekir:

cd C:/Documents and Settings/Kullanici_adi/Desktop

Masaüstüne geldikten sonra ¸su komutu vererek programınızı çalı¸stırabilirsiniz:

python deneme.py

Tabii ben burada sizin daha önce anlattı˘gımız ¸sekilde Python’ı YOL’a ekledi˘ginizi varsaydım.

E˘ger Python’ı YOL’a eklemediyseniz programınızı çalı¸stırmak için ¸su yöntemi de kullanabilirsiniz:

c:/python26/python deneme.py

E˘ger her ¸sey yolunda gitmi¸sse ¸su çıktıyı almamız lazım:

bir elma bir armut bir de muz almak istiyorum Gördü˘günüz gibi gayet basit.

Bu arada birkaç defadır “YOL” diye bir ¸seyden söz ediyoruz. Hatta geçen bölümde Python’ı nasıl YOL’a ekleyece˘gimizi de ö˘grendik. Peki ama nedir bu YOL denen ¸sey? Dilerseniz biraz bu konuyu inceleyelim. Zira ileride bir Python programı yazıp bu programı kullanıcılarınıza

sunmak istedi˘ginizde bu bilgiler çok i¸sinize yarayacak:

Bir programın veya dosyanın yolu, kabaca o programın veya dosyanın içinde yer aldı˘gı dizindir. Örne˘gin Internet Explorer programının yolu C:\Program Files\Internet

Explorer\iexplore.exe‘dir. Dolayısıyla ¸su komutu vererek IE’yi komut satırından ba¸slatabilirsiniz:

"C:\Program Files\Internet Explorer\iexplore.exe"

Ba¸ska bir örnek vermek gerekirse, hosts dosyasının yolu

C:\WINDOWS\system32\drivers\etc\hosts‘tur. Dolayısıyla bu dosyanın içeri˘gini görüntülemek için ¸su komutu verebilirsiniz:

notepad "C:\WINDOWS\system32\drivers\etc\hosts"

Python’ın yolu ise C:\Python26\python.exe‘dir. Dolayısıyla Python’ı çalı¸stırmak için ¸su komutu verebiliyoruz:

C:\Python26\python.exe

Bu “yol” kelimesinin bir de daha özel bir anlamı bulunur. Bilgisayar dilinde, çalı¸stırılabilir dosyaların (.exe dosyaları çalı¸stırılabilir dosyalardır) içinde yer aldı˘gı dizinlere de özel olarak YOL adı verilir ve bu anlamda kullanıldı˘gında “yol” kelimesi genellikle büyük harfle yazılır.

˙I¸sletim sistemleri, bir programı ça˘gırdı˘gımızda, söz konusu programı çalı¸stırabilmek için bazı özel dizinlerin içine bakar. Çalı¸stırılabilir dosyalar e˘ger bu özel dizinler içinde iseler, i¸sletim sistemi bu dosyaları bulur ve çalı¸stırılmalarını sa˘glar. Böylece biz de bu programları do˘grudan isimleriyle ça˘gırabiliriz. ¸Simdi bu konuyu daha iyi anlayabilmek için birkaç deneme yapalım.

Ba¸slat/Çalı¸stır yolunu takip edip, açılan penceredecmd komutunu vererek MS-DOS’u ba¸slatalım ve orada ¸söyle bir komut yazalım:

echo %PATH%

Bu komutun çıktısı ¸suna benzer bir ¸sey olacaktır:

C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;

Bu çıktı bize YOL de˘gi¸skeni (˙Ingilizce’de PATH variable) dedi˘gimiz ¸seyi gösteriyor. ˙I¸sletim sistemimiz, bir programı ça˘gırmak istedi˘gimizde öncelikle yukarıda adı verilen dizinlerin içini kontrol edecektir. E˘ger ça˘gırdı˘gımız programın çalı¸stırılabilir dosyası bu dizinlerden herhangi birinin içinde ise o programı ismiyle ça˘gırabiliyoruz.

Not: YOL dizinlerinin birbirlerinden noktalı virgül ile ayrıldı˘gına dikkat edin! Dolayısıyla, YOL’a yeni bir dizin eklemek isterseniz, sizin de bu dizini önceki dizinden noktalı virgül ile ayırmanız gerekir.

Örne˘gin notepad.exe C:\Windows dizini altında bulunan bir programdır. Bu dizin, YOL üstünde yer aldı˘gı için, Notepad programını do˘grudan ismiyle ça˘gırabiliriz. Komut satırındanotepad komutunu vererek bunu kendiniz de test edebilirsiniz. Aynı ¸sekilde calc.exe de

C:\Windows\System32klasörü altında bulunan bir programdır. Bu klasör de YOL üstünde oldu˘gu için, Calc programını do˘grudan ismiyle ça˘gırabiliyoruz...

¸

Simdi e˘ger biz de yazdı˘gımız programı do˘grudan ismiyle ça˘gırabilmek istiyorsak programımızı echo %PATH% çıktısında verilen dizinlerden birinin içine kopyalamamız gerekiyor. Mesela programımızı C:\Windows dizini içine kopyalayalım.

¸

Simdi komut satırında:

deneme.py

yazınca programımızın çalı¸stı˘gını görmemiz lazım.

Program dosyamızı YOL üstünde bulunan dizinlerden birine eklemek yerine, dosyamızın içinde bulundu˘gu dizini YOL’a eklemek de mümkün. Bunun için MS-DOS’ta ¸söyle bir komut vermemiz gerekiyor:

PATH=%PATH%;%USERPROFILE%\Desktop

Bu ¸sekilde masaüstü dizinini YOL’a eklemi¸s olduk. ˙Isterseniz;

echo %PATH%

komutuyla masaüstünüzün YOL üstünde görünüp görünmedi˘gini kontrol edebilirsiniz. Bu sayede artık masaüstünde bulunan çalı¸stırılabilir dosyalar da kendi adlarıyla ça˘grılabilecekler.

Ancak masaüstünü YOL’a ekledi˘ginizde, masaüstünüz hep YOL üstünde kalmayacak, mevcut MS-DOS oturumu kapatılınca her ¸sey yine eski haline dönecektir. E˘ger masaüstü dizinini kalıcı olarak YOL’a eklemek isterseniz, daha önce gösterdi˘gimiz ¸sekilde, bu dizini Sistem

De˘gi¸skenleri içindeki PATH listesine yazmanız gerekir.

Burada hemen ¸söyle bir soru akla geliyor: Notepad ve Calc gibi programları, hiç .exe uzantısını belirtmeden do˘grudan isimleriyle ça˘gırabildik. Ama mesela deneme.py adlı programımızı çalı¸stırabilmek için .py uzantısını da belirtmemiz gerekti. Peki bu durumun nedeni nedir?

Windows’ta PATHEXT adlı özel bir de˘gi¸sken vardır. Bu de˘gi¸sken, sistemin çalı¸stırılabilir kabul etti˘gi uzantıları tutar. ¸Su komutu verelim:

echo %PATHEXT%

Buradan ¸su çıktıyı alıyoruz:

.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH

Windows’ta e˘ger bir program yukarıda görülen uzantılardan birine sahipse çalı¸stırılabilir olarak kabul edilecektir. Gördü˘günüz gibi, .exe de bu uzantılardan biri. Dolayısıyla bu uzantıya sahip bir dosyayı, uzantısını belirtmeden de ça˘gırabiliyoruz. E˘ger isterseniz bu listeye .py uzantısını da ekleyebilirsiniz. Bunun için ¸su i¸slemleri yapabilirsiniz:

1. Denetim Masasında “Sistem” simgesine çift tıklayın.

2. “Geli¸smi¸s” sekmesine girin ve “Ortam De˘gi¸skenleri” dü˘gmesine basın.

3. “Sistem De˘gi¸skenleri” bölümünde “PATHEXT” ö˘gesini bulup buna çift tıklayın.

4. En son girdi olan .WSH‘den sonra ”;.PY” girdisini ekleyin.

5. TAMAM’a basıp çıkın.

Böylece artık .py uzantılı dosyaları da, uzantı belirtmeden çalı¸stırabilirsiniz...

¸

Simdiye kadar bir Python programını nasıl yazaca˘gımızı ve IDLE’ı ya da MS-DOS’u kullanarak bu programı nasıl çalı¸stıraca˘gımızı ö˘grendik. Peki yazdı˘gımız bir programı çift tıklayarak çalı¸stıramaz mıyız? Elbette çalı¸stırabiliriz.

Python Windows’a kurulurken kendini kütü˘ge (Registry) kaydeder. Dolayısıyla Windows Python programlarını nasıl çalı¸stırması gerekti˘gini bilir. Hatta bu sayede Windows üzerinde yazdı˘gımız Python programlarını,programın bulundu ˘gu dizin içinde sadece ismini

kullanarak çalı¸stırmamız da mümkündür. Yani yazdı˘gımız programı masaüstüne kaydetti˘gimizi varsayarsak ve ¸su komutla da masaüstüne geldi˘gimizi dü¸sünürsek:

cd C:/Documents and Settings/Kullanici_adi/Desktop

Masaüstüne geldikten sonra ¸su komutu vererek programınızı çalı¸stırma imkanına sahibiz:

deneme.py

Ancak bu komutun i¸se yarayabilmesi için, MS-DOS’ta o anda programın bulundu˘gu dizin içinde olmamız gerek. Yani e˘ger programınız Belgelerim dizini içinde ise ve siz de MS-DOS’ta C:/Documents and Settings/Kullanici_adi/Desktopdizini altındaysanız bu komut bir i¸se

yaramayacaktır. Yazdı˘gınız programı konum farketmeksizin her yerden ça˘gırabilmek istiyorsanız, programınızı biraz önce anlattı˘gımız ¸sekilde YOL’a eklemelisiniz... Neyse... Biz

¸

simdi tekrar konumuza dönelim.

Ne diyorduk? Evet, yazdı˘gımız programları çift tıklayarak çalı¸stıramaz mıyız? Tabii ki çalı¸stırabiliriz. Python Windows’a kurulurken kendini kütü˘ge kaydetti˘gi için, yazdı˘gımız .py uzantılı dosyaya çift tıkladı˘gımızda programımız çalı¸sacaktır. Ancak burada ¸söyle bir problem var. Dosyamıza çift tıkladı˘gımızda programımız çalı¸sır çalı¸smasına, ama bu i¸slem o kadar hızlı olup biter ki, biz sadece arkada son hızla siyah bir komut satırının açılıp kapandı˘gını görürüz...

Aslında programımız çalı¸sıyor, ama çok hızlı bir ¸sekilde çalı¸sıp sona erdi˘gi için biz

programımızın çalı¸stı˘gını göremiyoruz. Programımızın çalı¸stı˘gını görebilmemiz için o siyah komut satırının kapanmasına engel olmamız gerekir. Bunu da, programımızın en son satırına

¸

su ilaveyi yaparak hallediyoruz:

raw_input()

Yani kodlarımız ¸söyle görünmeli:

a = "elma"

b = "armut"

c = "muz"

print "bir", a, "bir", b, "bir de", c, "almak istiyorum"

raw_input()

Son satıra ekledi˘gimiz bu raw_input() ifadesinin ne oldu˘gunu ve tam olarak ne i¸se yaradı˘gını birkaç bölüm sonra inceleyece˘giz. ¸Simdilik siz sadece bu satırın, MS-DOS’un kapanmasını engelledi˘gini bilin. Bu komut sayesinde MS-DOS sizENTER tu¸suna basana kadar açık kalacaktır...

Ancak bu noktada çok önemli bir uyarı yapmamız gerekiyor. Python’la bir program geli¸stirirken, programlarınızı çalı¸stırmak için asla bu çift tıklama yöntemini kullanmayın.

Programlarınızı her zaman komut satırından çalı¸stırın. Böylece, e˘ger programınızda bir hata varsa, bu hatanın nereden kaynaklandı˘gını anlayabilirsiniz. Ama e˘ger programınızı çift tıklayarak çalı¸stırırsanız hatayı görme ¸sansınız olmaz. Buna bir örnek verelim.

Diyelim ki bir üçgenin alanını hesaplayan bir program yazacaksınız. Bir üçgenin alan formülü

¸

1. Öncelikleyukseklik adlı bir de˘gi¸sken tanımladık. Bu de˘gi¸skenin de˘geri 4

2. Ardındantaban adlı ba¸ska bir de˘gi¸sken daha tanımladık. Bu de˘gi¸skenin de˘geri ise 6 3. Üçgenin alanını hesaplamamızı sa˘glayan formülümüzü yazıyoruz: alan = taban *

(yukseklik / 2)

4. Son olarak daalan adlı de˘gi¸skenin de˘gerini print komutu yardımıyla ekrana çıktı olarak veriyoruz.

5. Bu programı çalı¸stırdı˘gımızda alaca˘gımız sonuç 12 olacaktır...

¸

Simdi ¸söyle bir dü¸sünün. Diyelim ki biz bu programı yazarken ufak bir hata yaptık ve ¸söyle bir

¸

E˘ger bu programı çift tıklayarak çalı¸stırırsanız, programdaki hatanın nereden kaynaklandı˘gını anlayamazsınız. Çünkü MS-DOS ekranı son hızla açılıp kapanacaktır. Üstelik son satıra

raw_input()eklemeniz de hiç bir i¸se yaramaz. Bu satır sadece hatasız programların çift tıklanarak çalı¸smasını sa˘glar. Çünkü Python kodları yukarıdan a¸sa˘gıya do˘gru okur. Bir hatayla kar¸sıla¸stı˘gında da kodların geri kalanını okumadan programdan çıkar. Dolayısıyla, raw_input() satırından önce bir hata varsa, Python bu satıra ula¸samadan programı kapatacak, bu sebeple MS-DOS satırının kapanmasını önleyen kod hiçbir zaman çalı¸smamı¸s olacaktır...

Ama e˘ger aynı programı komut satırından çalı¸stırmayı denerseniz hatanın nereden kaynaklandı˘gı konusunda bir fikir edinebilirsiniz. Bu program ¸söyle bir hata verecektir:

Traceback (most recent call last):

File "deneme.py", line 6, in <module>

print alan

NameError: name ’alan’ is not defined

Bu hata bize, “alan” diye bir ¸seyin tanımlanmadı˘gını söylüyor. Kodlarımıza dikkatli bakınca görüyoruz ki, hakikaten “alan” diye bir de˘gi¸sken tanımlamamı¸sız. Çünkü formülde “alan”

yazaca˘gımıza yanlı¸slıkla “ala” yazmı¸sız!

Böylece bir bölümü daha bitirmi¸s olduk. Yalnız bu noktada ¸su hatırlatmayı yapmadan

geçmeyelim. Yukarıda verdi˘gimiz bilgiler son derece önemlidir. Sadece Python’la de˘gil, hangi dille programlama yapıyor olursanız olun, yukarıda anlattı˘gımız ¸seyleri özümsemi¸s olmalısınız.

˙Iyi bir programcı, üzerinde program geli¸stirece˘gi i¸sletim sistemini yakından tanımalıdır.