Python
Beğen (0)

Klavyeden Girilen Kelimeyi Kelebek Deseninde Yazdıran Python Uygulaması

Makalede anlatılan uygulamayı buradan indirebilirsiniz.

Python programı string ifadeler üzerinde istenilen tüm işlemleri gerçekleştirmemize izin verir. Bu uygulamada klavyeden girilen bir kelimeyi kelebek deseni oluşturarak görüntülemeye çalışacağız. Klavyeden girilen kelimemiz İSLAM olsun. Bu kelimeyi kelebek deseninde şöyle görüntüleyebiliriz.

İ               İ
İ S           S İ
İ S L       L S İ
İ S L A   A L S İ
İ S L A M A L S İ
İ S L A   A L S İ
İ S L       L S İ
İ S           S İ
İ               İ

Visual Studio programını açalım.

Create a New Project diyerek yeni bir proje oluşturalım.

Dil olarak Python, platform olarak All platforms, ortam olarak All project types seçelim. Ekrana gelen şablonlardan Python Application seçelim.

Proje ismini KelebekDeseni olarak belirleyelim. Create diyerek yeni bir Python uygulaması oluşturalım. 

Visual Studio proje ismiyle aynı yani KelebekDeseni.py dosyası oluşturur. Ben bu dosyanın ismini karışıklık olmasın diye kelebek.py diye değiştirdim.

Daha sonra projeyi bu haliyle çalıştıralım. Amacımız python projesinin doğru kurulup kurulmadığını test etmek. Boş bir console ekranı ile karşılaşırsanız herşey yolundadır demektir.

Öncelikle klavyeden girilen kelimeyi saklayacak kelime isminde bir değişken oluşturalım.

kelime: str = ""

Kullanıcının girdiği kelimeyi bu değişkene aktaran kodları yazalım.

kelime = input("Kelimeyi giriniz : ")

Örnek kelimeye baktığımızda ilk satırda kelimenin ilk harfi yer almaktadır. Her iki harf arası ise 1 + 7 + 1 şeklinde bir desene sahiptir. Kelime soldan sağa ve sağdan sola şeklinde harf harf eklenmiştir. Kelimede harf sayısı 5 tanedir. Son harf ortak olduğu için sütun sayısı 5 * 2 - 1 = 9 olarak hesaplanır. İkinci satıra bakalım. Kelimede 2 harf kullanılmıştır. Desenimiz 2 + 5 + 2 şeklinde olacaktır. Öncelikle her bir satırda bulunan sütunları, boşlukları ve harf sayısını tutacak değişkenleri tanımlayalım.

sutun: int = 0
bosluk: int = 0
harf: int = 0

Tüm satırlar için kullanılacak sütun sayısını bulalım.

sutun = len(kelime) * 2 - 1

İlk satırda yer alan harf sayısını bulalım.

harf = len(kelime[0:1]) * 2

Şimdi ilk satıra ait boşluk işlemlerini gerçekleştirelim.

bosluk = sutun - harf

Artık ilk satıra ait kelebek desenini oluşturabiliriz.

print(kelime[0:1], " " * bosluk, kelime[0::-1], sep = "")

Şimdi ikinci satırı yazdıralım. Bu satırda kelimenin ilk iki harfi yazdırılmaktadır. Boşluk sayısını bulmak için sütun sayısından harf sayıları toplamını çıkarıyoruz.

harf = len(kelime[0:2]) * 2
bosluk = sutun - harf
print(kelime[0:2], " " * bosluk, kelime[1::-1], sep = "")

Sıra geldi üçüncü satıra.

harf = len(kelime[0:3]) * 2
bosluk = sutun - harf
print(kelime[0:3], " " * bosluk, kelime[2::-1], sep = "")

Vakit kaybetmeden dördüncü satırımızı yapalım.

harf = len(kelime[0:4]) * 2
bosluk = sutun - harf
print(kelime[0:4], " " * bosluk, kelime[3::-1], sep = "")

Artık kelebek deseninin üst tarafını bitirebiliriz. Bu arada değişen değerlere dikkat ediniz.

harf = len(kelime[0:5]) * 2 - 1
bosluk = sutun - harf
print(kelime[0:5], " " * bosluk, kelime[3::-1], sep="")

Şimdi kelebek deseninin alt tarafını yapalım. Altıncı satırı yapmaya çalışalım.

harf = len(kelime[0:4]) * 2
bosluk = sutun - harf
print(kelime[0:4], " " * bosluk, kelime[3::-1], sep="")

Yedinci satırı yapalım.

harf = len(kelime[0:3]) * 2
bosluk = sutun - harf
print(kelime[0:3], " " * bosluk, kelime[2::-1], sep="")

Sekizinci satırı yapalım.

harf = len(kelime[0:2]) * 2
bosluk = sutun - harf
print(kelime[0:2], " " * bosluk, kelime[1::-1], sep="")

Nihayet son satıra geldik. Bunu da kodlayalım.

harf = len(kelime[0:1]) * 2
bosluk = sutun - harf
print(kelime[0:1], " " * bosluk, kelime[0::-1], sep="")

Projeyi kaydedip çalıştıralım. Kelime olarak İSLAM girelim. Ekranda kelebek desenini görürsünüz. Uygulamayı incelediğinizde şu sonuçlara ulaşırsınız.

Programda sürekli tekrar eden satırlar var. Bunları nasıl azaltabiliriz.

Program sadece İSLAM kelimesinde doğru sonuç vermektedir. Başka bir kelime yazıldığında doğru sonuç nasıl oluşturulabilir.

Program kullanıcı H harfine basıncaya kadar nasıl devam edebilir.

Kullanıcı kelime girmediğinde hata mesajı nasıl oluşturulabilir.

Hadi şimdi bunları yapmaya çalışalım.

1. Kelebek desenine bakıldığında üst bölüm ve alt bölüm olarak iki bölümden oluştuğunu görürsünüz. Üst bölümde harf sayısının arttığını, alt bölümde ise harf sayısının azaldığını görürsünüz. Öncelikle üst bölümü yapalım.

Burada harf sayısını belirlemek için i değişkenini kullanalım. for döngüsünde i değişkeni 0 ile kelimenin içindeki harf sayısı arasında değişir. Örneğimiz İSLAM kelimesini dikkate alırsak, i değişkeni, 0 ile 4 arasında değer alır. Bu döngüyü kullanarak işlemi yapalım. Öncekile harf sayısını bulalım.

for i in range(len(kelime)):
    harf = len(kelime[0 : i + 1]) * 2
    print(harf)

Şimdi harf sayısına göre boşluk sayısını bulalım.

for i in range(len(kelime)):
    harf = len(kelime[0 : i + 1]) * 2
    bosluk = sutun - harf
    print(bosluk)

Projeyi çalıştırdığınızda son değerin -1 olduğunu görürsünüz. Kelimenin tamamı yazılırken buna dikkat ederek kod yazacağız. Şimdi de kelebek desenine ait üst kısmı yapalımı.

for i in range(len(kelime)):
    harf = len(kelime[0 : i + 1]) * 2
    bosluk = sutun - harf
    print(kelime[0:i + 1], " " * bosluk, kelime[i::-1], sep="")

Projeyi çalıştırdığımızda son satırın deseni bozduğunu görürsünüz. Şimdi bu hatayı düzeltelim.

for i in range(len(kelime)):
    harf = len(kelime[0 : i + 1]) * 2
    bosluk = sutun - harf
    if bosluk < 0:
        bosluk = 0
        print(kelime[0 : i + 1], " " * bosluk, kelime[i - 1 :: -1], 
sep="")
    else:
        print(kelime[0 : i + 1], " " * bosluk, kelime[i::-1], sep="")

Projeyi çalıştıralım. İSLAM kelimesini girelim. Kelebek deseninin üst tarafının hatasız bir şekilde yapıldığını görürsünüz. Şimdi kelebek deseninin alt tarafını yapalım. Öncelikle harf sayısını bulalım.

for i in range(len(kelime),0,-1):
    harf = len(kelime[0:i - 1]) * 2
    print(harf)

Şimdi boşluk sayısını bulalım.

for i in range(len(kelime),0,-1):
    harf = len(kelime[0:i - 1]) * 2
    bosluk = sutun - harf
    print(bosluk)

Alt tarafa ait kelebek desenini yapalım.

for i in range(len(kelime), 0, -1):
    harf = len(kelime[0 : i - 1]) * 2
    bosluk = sutun - harf
    print(kelime[0 : i - 1], " " * bosluk, kelime[i - 2 :: -1], 
sep="")

Projeyi kaydedip çalıştıralım. Kelebek deseninin alt tarafının hatalı olduğunu görürsünüz. Şimdi bu hatayı düzeltelim.

for i in range(len(kelime), 0, -1):
    harf = len(kelime[0 : i - 1]) * 2
    if harf > 0:
        bosluk = sutun - harf
        print(kelime[0 : i - 1], " " * bosluk, kelime[i - 2 :: -1], 
sep="")

Projeyi kaydedip çalıştıralım. Kelebek deseninin hatasız bir şekilde yapıldığını görürsünüz. Bu arada başka bir kelime yazdığınızda da desenin yapıldığına dikkat ediniz.

Şimdi kelebek desenini desen isimli bir fonksiyon aracılığıyla yapalım. Tanımladığımız desen fonksiyonu aşağıdaki gibi olacaktır.

def desen(kelime: str):
    sutun = len(kelime) * 2 - 1

    for i in range(len(kelime)):
        harf = len(kelime[0 : i + 1]) * 2
        bosluk = sutun - harf
        if bosluk < 0:
            bosluk = 0
            print(kelime[0 : i + 1], " " * bosluk, kelime[i - 1 :: -1], 
sep="")
        else:
            print(kelime[0 : i + 1], " " * bosluk, kelime[i::-1], sep="")

    for i in range(len(kelime), 0, -1):
        harf = len(kelime[0 : i - 1]) * 2
        if harf > 0:
            bosluk = sutun - harf
            print(kelime[0 : i - 1], " " * bosluk, kelime[i - 2 :: -1], 
sep="")

Bu fonksiyonu çağıran ana kodlarımızı aşağıdaki gibi düzenleyelim.

while True:
    kelime = input("Kelimeyi giriniz : ")
    if kelime != "":
        if kelime.upper() == "H":
            break
        desen(kelime.upper())
    else:
        print("Lütfen bir kelime giriniz...")

Projeyi kaydedip çalıştıralım. Kullanıcı "H" tuşuna basıncaya kadar girilen bir kelimeyi kelebek deseninde ekranda görürsünüz. Şimdi oluşturulan kelebek desenini harici bir dosyaya atalım. Ben KelebekClass isminde bir class dosyası oluşturuyorum. Bu dosyanın içeriği aşağıdaki gibi olacaktır.

class Desen:
    sutun: int = 0
    bosluk: int = 0
    harf: int = 0

    def __init__(self, kelime: str):
        self.kelime = kelime

    def desen(self):
        sutun = len(self.kelime) * 2 - 1

        for i in range(len(self.kelime)):
            harf = len(self.kelime[0 : i + 1]) * 2
            bosluk = sutun - harf
            if bosluk < 0:
                bosluk = 0
                print(
                    self.kelime[0 : i + 1],
                    " " * bosluk,
                    self.kelime[i - 1 :: -1],
                    sep="",
                )
            else:
                print(self.kelime[0 : i + 1], " " * bosluk, self.kelime[i::-1], sep="")

        for i in range(len(self.kelime), 0, -1):
            harf = len(self.kelime[0 : i - 1]) * 2
            if harf > 0:
                bosluk = sutun - harf
                print(
                    self.kelime[0 : i - 1],
                    " " * bosluk,
                    self.kelime[i - 2 :: -1],
                    sep="",
                )

Şimdi bu class dosyasını kullanan ana programımızı aşağıdaki gibi düzenleyelim.

from Kelebek import Desen

ornek: Desen
kelime: str = ""

while True:
    kelime = input("Kelimeyi giriniz : ")
    if kelime != "":
        if kelime.upper() == "H":
            break
        ornek = Desen(kelime.upper())
        ornek.desen()
    else:
        print("Lütfen bir kelime giriniz...")

Gördüğünüz gibi ana programa ait kodlar ne kadar azaldı. Tanımlanan class dosyasını istenen tüm programlarda kullanabilirsiniz.

Bu arada Visual Studio ile python kodu yazdığınızda kodlamada Türkçe karakter hatası alırsınız.. Bu hatayı düzeltmek için buradaki makaleyi okuyabilirsiniz.

Okunma Sayısı: 9

Etiketler
python kelebek design str 

Yorumlar

Yorum Ekle
Kötü
İyi
İlgili Makaleler
Girilen Doğum Tarihinin Hangi Güne Denk Geldiğini Bulan Python Uygulaması
Dağılım Ölçütü
Python Dilinde WhatsApp Programını Açma
Ayt Belirli Sayıda Tekrarlanan Logaritmik Değerlerin Toplamını Bulan Python Uygulaması
Python Programlama Dilinde Güncel Tarihi Nasıl Alabilirim
Visual Studio 2022 Programında Python Uygulaması Yazarken Türkçe Karakter Sorunu ve Çözümü
Programlama Temelleri Dersi İkinci Dönem İkinci Yazılı Çalışma Soruları
Programlama Temelleri Dersi Birinci Dönem Birinci Yazılı Çalışma Soruları
Pandas Kütüphanesini Kullanarak Excel Dosyasından Veri Çekme
Girilen Doğum Tarihine Göre Kullanıcının Yaşını Bulan Python Uygulaması
Programlama Temelleri Dersi İkinci Dönem Birinci Yazılı Çalışma Soruları
Hipotez Testi
NumPy Kütüphanesi ve Kurulumu
Kesişim, Birleşim ve Tamamlayıcı
Veri Bilimine Giriş
Python Dilinde Hata Kontrol İşlemlerinde Raise Deyimi Kullanımı
Python Dilinde WhatsApp Uygulamasına Bot Yazarak Belirlenen Kullanıcıya Mesaj Atma
Python Dilinde WhatsApp Programında İstenen Kişiye Yazılan Mesajı Gönderme
Python Programlama Dilinde Fonksiyon
Python Programlama Dilinde Fonksiyon Tanımlama