Ana içeriğe geç

Python Betikleri Nasıl Çalıştırılır Eğitimi

Komut satırından bir Python betiğini nasıl çalıştırabileceğinizi ve betiğinize komut satırı argümanlarını nasıl sağlayabileceğinizi öğrenin.
· 10 dk. oku

Yapay Zeka ile Keşfedin

Bu eğitimdeki kodu çevrimiçi olarak çalıştırın ve düzenleyin

Kodu çalıştır

Genellikle her yeni başlayan önce komut satırında bir Python betiği yazmayı öğrenir, ardından betiği komut satırından çalıştırmaya geçer; betik çoğunlukla bir metin düzenleyicide yazılır ve komut satırından çalıştırılır. Bu yazıda, Python betiklerini nasıl çalıştıracağınızı daha ayrıntılı olarak inceliyoruz. 

Python Betikleri ve Yorumlayıcılar

Bilgisayarlar, insanların yazdığı haliyle kodu anlayamaz; bu nedenle bilgisayar ile insan tarafından yazılmış kod arasında bir yorumlayıcıya ihtiyaç vardır. Yorumlayıcının görevi, kodu bilgisayarların anlayıp işleyebileceği bir biçime dönüştürmektir.

Yorumlayıcı kodu şu yollarla işler:

  • Python betiğini sıralı olarak işler

  • Kodu, bilgisayarların anladığı daha düşük seviyeli bir dil olan bayt koduna derler.

  • Son olarak devreye Python Sanal Makinesi (PVM) girer. PVM, Python'ın çalışma zamanı motorudur. Düşük seviyeli bayt kodunuzun talimatlarını tek tek çalıştırmak için üzerinden geçen bir süreçtir.

Betiklere benzer şekilde, başka bir Python betiğinde içe aktarılan ve kullanılan bir Python betiği olan Modül diye bir şey vardır.

Python betiği, bilgisayara bunun bir Python program betiği olduğunu bildiren .py uzantısıyla kaydedilir. Windows'un aksine, Linux ve Mac gibi Unix tabanlı işletim sistemleri Python ile önceden kurulu gelir. Ayrıca, Python betiklerinin Windows ve Unix işletim sistemlerinde çalıştırılma biçimi farklıdır.

Python Betiklerini Çalıştırma: Kurulum

Tüm kullanıcılar, özellikle de Windows işletim sistemi kullanıcıları için, Anaconda kurmanız şiddetle önerilir; Anaconda web sitesinden indirebilirsiniz. Bu Windows için Anaconda yükleme eğitimindeki adımları izleyebilirsiniz.

Windows işletim sisteminde Python3 kurmak için, lütfen şu Python kurulum eğitimine göz atın.

Python için komut satırı yorumlayıcısına farklı işletim sistemlerinde şu şekillerde erişebilirsiniz:

  • Windows'ta komut satırı Komut İstemi olarak bilinir; başlat menüsüne tıklayıp komut istemi araması yaparak açabilirsiniz. Bir diğer yol da Çalıştır iletişim kutusuna cmd yazıp enter'a basmaktır (Başlat menüsü $->$ Çalıştır ve cmd yazın). Ardından, Python C sürücünüze kurulmuşsa tek yapmanız gereken C:\python36\python.exe yazmaktır; burada python36 Python sürümüdür (Not: Bu yol, Python'ın yapılandırıldığı dizine bağlı olarak değişebilir).
komut istemi
(Kaynak)
  • Mac sisteminde oldukça basittir. Launchpad'i açıp Terminal araması yapın ve terminalde Python yazın; kurulu Python sürümüne dair bir çıktı alırsınız.
mac sistemi
  • Linux sisteminde de terminale erişmek Mac'teki kadar kolaydır. Masaüstünde sağ tıklayın ve Terminal'e tıklayın; terminalde Python yazın.
linux sistemi
(Kaynak)

Not: Bu eğitimde Mac OS Terminal kullanılacaktır.

O halde, daha fazla uzatmadan başlayalım!

Terminalde Python Betiği Yazma

Terminalde kod yazıp çıktıyı doğrudan nasıl üretebileceğinize bakalım. Bunu yapmak için önce python3 yazarsınız; bu, Python3 sürümünü kullanacağınız anlamına gelir.

Ardından, bir metin düzenleyici ya da IDE'de (tümleşik geliştirme ortamı) olduğu gibi tipik şekilde kod yazabilirsiniz; ancak terminalde, bir IDE'de sahip olacağınız işlevselliklerin tümüne sahip olmayacaksınız.

Klasik Hello, World! örneğiyle başlayacaksınız; terminalde çıktının nasıl göründüğüne bakalım.

Terminalde Python Betiği Yazma

Sadece terminali açıp Python3 yazarak Python'da kod yazabilmek güzel değil mi? Birkaç örnek daha deneyelim.

Terminalde Python Betiği Yazma

Yukarıdaki örnekte dikkat edilmesi gereken bir nokta, print ifadesini yazmadan da çıktı alabilmiş olmanızdır.

Kodu biraz karmaşıklaştıralım ve NumPy (Numerical Python) kütüphanesini kullanarak iki dizi oluşturalım ve üzerinde birkaç matematiksel işlem uygulayalım. NumPy hakkında kısa bir arka plan bilgisi: Çok boyutlu büyük diziler ve matrislerle çalışabilen ve bu diziler üzerinde işlem yapmaya yönelik kapsamlı, üst düzey matematiksel işlevler koleksiyonuna sahip bir Python programlama kütüphanesidir.

Terminalde Python Betiği Yazma

Yukarıdaki görselden, numpy kullanarak terminal içinde iki numpy dizisi oluşturabildiğinizi, toplayabildiğinizi ve çarpabildiğinizi gözlemleyebilirsiniz. Burada dikkat edilmesi gereken bir nokta, numpy içindeki multiply işlevinin eleman bazında çarpma yaptığı, dot işlevinin ise iki matrisin nokta çarpımını aldığıdır. np.dot komutunu başarılı şekilde çalıştırmak için ilk matrisin sütun sayısının ikinci matrisin satır sayısına eşit olduğundan emin olmanız gerekir; aksi halde value error alırsınız.

Terminalden Python Betikleri Nasıl Çalıştırılır

Python betiğini terminalden çalıştırmak çok basittir; betiği terminalde yazmak yerine, vim, emacs veya notepad++ gibi bir metin düzenleyici kullanıp .py uzantısıyla kaydedin. Sonra terminali açın, kodun bulunduğu dizine gidin ve python anahtar sözcüğünün ardından betik adını yazarak çalıştırın.

Terminalden .py betiğini çalıştırma

terminal.py dosyasını oluşturmak için terminalde program adıyla birlikte vim kullanın: vim terminal.py ve aşağıdaki kodu içine yapıştırın. Kodu kaydetmek için esc tuşuna basıp ardından wq! yazın. Son olarak, o betiği çalıştırmak için tek yapmanız gereken python3 terminal.py yazmak; bir saniyeden kısa sürede yukarıda gösterildiği gibi çıktıyı göreceksiniz.

Aşağıda, yukarıdaki örnekte kullanılan kod yer alıyor.

import numpy as np

x = np.array([[1,2],[3,4]], dtype=np.float64)
y = np.array([[5,6],[7,8]], dtype=np.float64)

# Elementwise sum; both produce the array
# [[ 6.0  8.0]
#  [10.0 12.0]]
print("Output of adding x and y with a '+' operator:",x + y)
print("Output of adding x and y using 'numpy.add':",np.add(x, y))

# Elementwise difference; both produce the array
# [[-4.0 -4.0]
#  [-4.0 -4.0]]
print("Output of subtracting x and y with a '-' operator:",x - y)
print("Output of subtracting x and y using 'numpy.subtract':",np.subtract(x, y))

# Elementwise product; both produce the array
# [[ 5.0 12.0]
#  [21.0 32.0]]
print("Output of elementwise product of x and y with a '*' operator:",x * y)
print("Output of element wise product of x and y using 'numpy.multiply':",np.multiply(x, y))

# Elementwise division; both produce the array
# [[ 0.2         0.33333333]
#  [ 0.42857143  0.5       ]]
print("Output of elementwise division x and y with a '/' operator:",x / y)
print("Output of elementwise division x and y using 'numpy.divide':",np.divide(x, y))

# Elementwise square root; produces the array
# [[ 1.          1.41421356]
#  [ 1.73205081  2.        ]]
print("Output of elementwise square root x using 'numpy.sqrt':",np.sqrt(x))
Output of adding x and y with a '+' operator: [[ 6.  8.]
 [10. 12.]]
Output of adding x and y using 'numpy.add': [[ 6.  8.]
 [10. 12.]]
Output of subtracting x and y with a '-' operator: [[-4. -4.]
 [-4. -4.]]
Output of subtracting x and y using 'numpy.subtract': [[-4. -4.]
 [-4. -4.]]
Output of elementwise product of x and y with a '*' operator: [[ 5. 12.]
 [21. 32.]]
Output of element wise product of x and y using 'numpy.multiply': [[ 5. 12.]
 [21. 32.]]
Output of elementwise division x and y with a '/' operator: [[0.2        0.33333333]
 [0.42857143 0.5       ]]
Output of elementwise division x and y using 'numpy.divide': [[0.2        0.33333333]
 [0.42857143 0.5       ]]
Output of elementwise square root x using 'numpy.sqrt': [[1.         1.41421356]
 [1.73205081 2.        ]]

Komut Satırı Argümanlarını Python Betiğine Aktarma

Komut satırı argümanları hayatı çok kolaylaştırır; üretime hazır kodda çoğu zaman komut satırı argümanları kullanılır. Kod çıktısının yeniden üretilebilirliğini verimli kılar. Örneğin, kodunuzda çok sayıda kullanıcı girdisi veya okunan dosya varsa, komut satırı argümanlarını kullanarak dosya adını veya bir değişken girdisini değiştirmeniz gerektiğinde bu değişiklikleri yapmak için kodun içine girmenize gerek kalmaz.

Bunu başarmak için, yerleşik bir Python modülü olan sys modülünü kullanacaksınız. sys içinde, Python programına iletilen komut satırı argümanlarının listesini veren argv bulunur. sys.argv, komut satırı argümanlarını bir öğe listesi olarak okur; bu listede ilk öğe/eleman sys.argv[1] olarak erişilebilirken, ilk argüman yani sys.argv[0] her zaman programın çağrıldığı sıradaki adıdır.

Basit bir örnek alıp nasıl çalıştığına bakalım.

Not: Komut satırı argümanı Python tarafından bir string olarak okunur; sayılarla çalışıyorsanız integer'a dönüştürdüğünüzden emin olun.

Önceki örneğe benzer şekilde, aşağıdaki kod satırlarını bir düzenleyicide command_line.py olarak kaydedin ve kodu çalıştırmak için python3 command_line.py 10 yazın; burada 10 komut satırı argümanıdır.

import sys
num = sys.argv[1]
for i in range(int(num)):
    print (i)
Komut Satırı Argümanlarını Python Betiğine Aktarma

Hiç komut satırı argümanı vermezseniz ne olur?

list index out of range hatası alırsınız; bu da sys.argv'nin öğelerden oluşan bir liste olarak okunduğunu tekrar doğrular. Bu tür hatalardan kaçınmak için istisna yakalama gerekir; ancak bu, bu eğitimin kapsamı dışındadır.

Komut Satırı Argümanlarını Python Betiğine Aktarma

Python Betiğinin Çıktısını Bir Dosyaya Yazma

Son olarak, bir bonus olarak, > tuşunu kullanarak Python betiğinin çıktısını bir txt dosyasına nasıl kaydedebileceğinize bakalım. 

Önce bir cli klasörü oluşturacak ve command_line.py kodunu cli klasörüne taşıyacaksınız. Ardından, o klasörde neler olduğuna bakarak halihazırda var olan bir txt dosyası olmadığından emin olacaksınız.

Daha sonra python3 command_line.py 10 > output.txt yazacak ve son olarak cli klasörünün içeriğini kontrol edeceksiniz. Artık output.txt dosyasını görebilmelisiniz.

Python Betiğinin Çıktısını Bir Dosyaya Yazma

Hadi output.txt dosyasını açıp içeriğine bakalım.

Python Betiğinin Çıktısını Bir Dosyaya Yazma

Yukarıdaki çıktıda gördüğünüz gibi, 0-9 rakamları yalnızca bir > işareti kullanılarak artık bir metin dosyasına yazılmış durumda.

Sonuç

Eğitimi tamamladığınız için tebrikler.

Python'da GUI tabanlı çalıştırma, Python betiklerini etkileşimli olarak çalıştırma ve betikleri bir dosya yöneticisinden ya da bir IDE üzerinden çalıştırma gibi keşfedilecek daha çok şey var. Komut satırına özel olarak, Windows komut istemi üzerinde denemeler yapıp Unix tabanlı bir işletim sisteminden nasıl farklı olduğuna bakmak isteyebilirsiniz.

Python'a yeni başlıyorsanız ve daha fazlasını öğrenmek istiyorsanız, DataCamp'in Python ile Veri Bilimine Giriş kursunu alın.

Python Betikleri Hakkında SSS

Python betiği nedir?

Python betiği, Python kodu içeren bir dosyadır. Bir betikteki kod, betiği komut satırından çalıştırarak veya başka bir betikten çağırarak yürütülebilir.

Nasıl Python betiği oluştururum?

Bir Python betiği oluşturmak için, Python kodu yazıp kaydedebilen bir metin düzenleyiciye veya tümleşik geliştirme ortamına (IDE) ihtiyacınız olacaktır. Python için popüler IDE'ler arasında PyCharm, IDLE ve Visual Studio Code bulunur.

Yeni bir Python betiği oluşturmak için, yeni bir dosya oluşturup onu .py uzantısıyla kaydedin. Ardından Python kodunuzu bu dosyaya yazıp kaydedebilir ve betiği çalıştırabilirsiniz.

Bir Python betiğini arka planda çalıştırabilir miyim?

Evet, nohup komutunu kullanarak bir Python betiğini arka planda çalıştırabilirsiniz. Örneğin:

nohup python script.py &

Bu, betiği arka planda çalıştırır ve betik çalışırken terminali kullanmaya devam etmenizi sağlar.

Komut satırından bir Python betiğini nasıl çalıştırırım?

Komut satırından bir Python betiği çalıştırmak için sisteminizde Python kurulu olmalıdır. Ardından, bir betiği yürütmek için aşağıdaki komutu kullanabilirsiniz:

python script.py

Konular

İlgili