Çok eski bir web tarayıcısı kullanıyorsunuz. Bu veya diğer siteleri görüntülemekte sorunlar yaşayabilirsiniz.. Tarayıcınızı güncellemeli veya alternatif bir tarayıcı kullanmalısınız.
Kod Açıklaması:
Bu kod, "ALİLA" gibi bir metin girdisi için ters piramit deseni oluşturan bir Python fonksiyonu tanımlar. Desen, her satırda önde boşluklar, karakterler ve orta boşluklar kullanarak oluşturulur. Fonksiyon:
Python
def print_pattern(text):
"""Verilen metin girdisi için deseni yazdırır.
Args:
text: Girdi metni.
"""
# Gerekli boşluk sayısını hesaplar
num_spaces = len(text) - 1
for i in range(len(text)):
# Önde boşlukları yazdırır
print(" " * num_spaces, end="")
# Karakterleri ve orta boşlukları yazdırır
print(text, end="")
if i != len(text) - 1:
print(" " * (2 * i), end="")
print(text[len(text) - i - 1], end="")
# Bir sonraki satır için boşlukları azaltır
num_spaces -= 2
# Bir sonraki satıra geçer
print()
Fonksiyon Çalışma Adımları:
Boşluk Sayısı Hesaplama:
num_spaces, metin uzunluğundan 1 çıkarılarak hesaplanır. Bu, en üst satır için gerekli önde boşluk sayısını verir.
Karakterlere Yürüyüş:
Bir for döngüsü, metin stringindeki her karakter üzerinden dolaşır.
Önde Boşluklar Yazdırma:
Benzer şekilde, num_spaces önde boşluklar oluşturmak için çarpım kullanılarak yazdırılır.
Karakterler ve Orta Boşluklar Yazdırma:
Mevcut karakter (text) ve ayna görüntüsü (text[len(text) - i - 1]) yazdırılır.
[*]Koşullu yazdırma, yalnızca i son karakter değilse ortadaki boşlukların eklenmesini sağlar.
[*]Ortadaki boşluk sayısı 2 * i kullanılarak hesaplanır. Bu, piramit şekli için istenen boşluğu oluşturur.
[*]Boşlukları Azaltma:
Her satırdan sonra, num_spaces bir sonraki satırlarda önde boşluk sayısının azalmasını sağlamak için 2 azaltılır.
[*]Bir Sonraki Satıra Geçme:
Bir sonraki satıra geçmek için yeni bir satır karakteri (\n) yazdırılır.
[*]Fonksiyon Çağırma:
print_pattern fonksiyonu, "ALİLA" girdi metniyle çağrılır.
Çıktı:
A A
A L L A
A L İ L A
A L L A
A A
Bu kod, boşluk hesaplama ve karakter yazdırma mantığını, ters piramit desenini boşluklarla elde etmek için değiştirir.
hocam belki dersiniz için faydası olur. Bu sitede güzel alıştırmalar var kendi hızında öğrenme ile öneri ve açıklamalar içeriyor alıştırmalarda yönlendiriyor. ingilizceniz yeterli değise tarayıcıda translate eklentisi kullanabilirsiniz. Yalnız eklenti açıkken kod yazarsanız imleç kayabiliyor kodları yazarken eklentiyi kapatırsınız. https://futurecoder.io/course/#toc
text=input("ENTER TEXT=")
cycle=round(((len(text)/2)+0.1)) #0.5 ---> round() üste yuvarlamaz.
print(cycle)
for i in range(1,cycle):
print(text[:i]+" "*(len(text)-i*2)+text[(len(text)-i):])
print(text)
for i in range(cycle-1,0,-1):
print(text[:i]+" "*(len(text)-i*2)+text[(len(text)-i):])