<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Oğuzhan Güç</title>
    <description>The latest articles on Forem by Oğuzhan Güç (@ogzcode).</description>
    <link>https://forem.com/ogzcode</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F718123%2Fea735661-984f-42a0-9ccb-c14998efe8f4.png</url>
      <title>Forem: Oğuzhan Güç</title>
      <link>https://forem.com/ogzcode</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ogzcode"/>
    <language>en</language>
    <item>
      <title>Python sys.argv ile basit bir CLI uygulaması</title>
      <dc:creator>Oğuzhan Güç</dc:creator>
      <pubDate>Mon, 20 Feb 2023 11:15:46 +0000</pubDate>
      <link>https://forem.com/ogzcode/python-sysargv-ile-basit-bir-cli-uygulamasi-4j1a</link>
      <guid>https://forem.com/ogzcode/python-sysargv-ile-basit-bir-cli-uygulamasi-4j1a</guid>
      <description>&lt;p&gt;Merhaba&lt;br&gt;
Bu yazıda size Python un sys.argv() komutu ile komut satırı arayüzünden nasıl kullanıcı girdisi alabileceğinizi anlatmaya çalışacağım.&lt;br&gt;
Yazıya başlamadan önce komut satırı arayüzünden biraz bahsetmek istiyorum.&lt;/p&gt;
&lt;h2&gt;
  
  
  Komut Satırı Arayüzü(CLI)
&lt;/h2&gt;

&lt;p&gt;Komut Satırı Arayüzü (CLI), metin tabanlı bir düzenleme ortamıdır.Bilgisayarla etkileşim kurmak ve programların yüklenmesi ve programlarla çalışılması dahil olmak üzere çok sayıda işlemi gerçekleştirmek için belirtilen komutları kullanır.&lt;br&gt;&lt;/p&gt;

&lt;p&gt;Her işletim sistemi yerleşik bir komut istemi ile birlikte gelir. &lt;br&gt;
Nodejs, Anaconda, Git ve benzeri bazı uygulama paketleri de kendi &lt;br&gt;
komut istemleriyle birlikte gelir.&lt;br&gt;
CLI farklı platformlar veya paketler arasında farklı adlar taşısa da,amacı aynı kalır: komutlar olarak bilinen metin tabanlı talimatları kullanarak yazılım paketi veya bilgisayar sistemiyle özgürce etkileşim kurmanızı sağlamak.&lt;/p&gt;

&lt;p&gt;Yani, CLI bir programlama dili değil, bir araçtır.CLI(Command Line Interface) ile işletim sistemi komut satırınız,terminaliniz veya konsolunuz aracılığıyla bir uygulama veya programla etkileşim kurabilirsiniz.&lt;br&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  CLI kullanımı
&lt;/h3&gt;

&lt;p&gt;Bu bilgiler ışığında hemen CLI yi kullanmaya başlayalım.Ben bu yazı kapsamında Linux kullanıyorum ve komutları da bu platform çerçevesinde yazacağım.Menü panelinden Uçbirimini açıyoruz ve ardından şu komutları yazıyoruz.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir first-cli
cd first-cli
code .
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;mkdir&lt;/code&gt; ile bir dosya oluşturduk ve &lt;code&gt;cd&lt;/code&gt; ile de dosyanın içerisine giriş yaptık.VS Code sisteminizde yüklü ise &lt;code&gt;code .&lt;/code&gt; komutu ile dosyayı VS Code ile açabilirsiniz.main.py adında bir Python dosyası oluşturuyoruz ve şu kodu içerisine yazıyoruz.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;print("Hello World")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ardından tekrar uçbirime gelerek python dosyasını çalıştırıyoruz:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ python3 main.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Çıktı:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hello World
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Linux de komut satırını kısa ve öz bir şekilde kullandık şimdi yazının asıl konusuna geçelim.&lt;/p&gt;

&lt;h2&gt;
  
  
  sys.argv
&lt;/h2&gt;

&lt;p&gt;Bu komut Python ile yerleşik gelen sys kütüphanesinde bulunan değişken ve işlevlerden bir tanesidir.Amacı komut satırındaki kullanıcı girdisini toplamak.Peki bu ne demek?&lt;br&gt;&lt;br&gt;
Yukarıda hatırlarsanız python dosyasını çalıştırmak için şöyle bir komut yazmıştık.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ python3 main.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Peki bu komutun yanına bir şeyler daha yazalım ve ne gibi bir çıktı alacağımızı görelim.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ python3 main.py Fener sen çok yaşa
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Çıktı:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hello World
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Gördüğünüz gibi sonradan yaptığımız eklemenin çıktıya herhangi bir etkisi yok.Ama biz onu yazdırmak istiyoruz işte bu durumda &lt;br&gt;
sys.argv imdadımıza yetişiyor.Hemen nasıl kullanıldığına bakalım.&lt;br&gt;
Python dosyamıza şu kodu yazalım ve tekrar çalıştıralım.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import sys

print("Hello World")
print(sys.argv)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Çıktı:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hello World
['main.py', 'Fener sen çok yaşa']
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Çıktının ikinci satırına baktığımızda aslında istediğimizi kısmen elde ettik.Burada listenin ilk elemanı her zaman çalıştırdığımız dosyanın adıdır.Ve ardından gelenler ise bizim eklediğim ekstra kodlardır.Bu kodların tamamına şu şekilde erişebilirsiniz veya liste erişim yöntemlerini kullanabilirsiniz.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;argv = sys.argv[1:]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Çıktı:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;['Fener sen çok yaşa']
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;sys.argv nasıl kullanacağımızı öğrendiğimize göre şimdi küçük bir uygulama yapalım.&lt;/p&gt;

&lt;h2&gt;
  
  
  Asal Sayı Uygulaması
&lt;/h2&gt;

&lt;p&gt;Bu uygulama basit bir şekilde şunu gerçekleştirecek:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Komut arayüzünden bir sayı alacak.&lt;/li&gt;
&lt;li&gt;Bu sayının asal olup olmadığını kontrol edecek.&lt;/li&gt;
&lt;li&gt;Eğer birden fazla sayı veya farklı karakter girilmiş ise hata verecek.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import sys

def is_prime(number):
    for n in range(2, int(number ** 0.5) + 1):
        if number % n == 0:
            return "Sayı Asal Değildir"

    return "Sayı Asaldır"

argv = sys.argv

if len(argv) &amp;gt; 2:
    print("Hata! Bir adet sayı giriniz...")
else:
    try:
        number = int(argv[1])
        print(is_prime(number))
    except ValueError:
        print("Sadece sayı giriniz...")

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Örnek Girdiler:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ python3 main.py 12
Sayı Asal Değildir
$ python3 main.py 3
Sayı Asaldır
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Yazının sonuna geldik umarım faydalı olmuştur.&lt;br&gt;&lt;/p&gt;

&lt;p&gt;Okuduğunuz ve vakit ayırdığınız için teşekkür ederim.&lt;br&gt;
Bana ulaşmak için aşağıdaki adresleri kullanabilirsiniz.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/ogzcode"&gt;https://github.com/ogzcode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/ogzCode"&gt;https://twitter.com/ogzCode&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bir başka yazıda görüşmek üzere.&lt;/p&gt;

</description>
      <category>python</category>
      <category>programming</category>
      <category>motivation</category>
    </item>
  </channel>
</rss>
