Python ile Yıldızlarla Şekil Çizme Örnekleri
Bu yazımızda, Python ile, yıldızlarla şekil çizme örnekleri derlenmiştir.
- Aşağıdaki gibi kare olarak yıldızlanmış şekli kodlayınız:
1 2 3 4 5 |
* * * * * * * * * * * * * * * * * * * * * * * * * |
Yukarıdaki gibi temsili olarak gösterilmiş ve yıldızlardan oluşan bir kare çizmek için “iç içe for” döngüsünü kullandık.
1 2 3 4 5 6 7 8 9 10 |
# Yıldızlarla oluşturulan bir kare # Kare boyutunu al boyut = int(input("Lütfen karenin boyutunu girin: ")) # Kareyi oluştur for i in range(boyut): for j in range(boyut): print("* ", end="") print() |
İç içe for döngüsü ile karenin her satırını ve sütununu oluşturuyoruz. Dış döngü, karenin satırlarını oluştururken, iç döngü her satırın sütunlarını oluşturur. Örneğin, 5×5 bir kare oluştururken, dış döngü 5 kez çalışır ve her döngüde iç döngü 5 kez çalışarak her satırın 5 sütununu oluşturur.
Python’da print
fonksiyonu, varsayılan olarak her çağrıldığında sonunda bir yeni satır karakteri ekleyecek şekilde ayarlanmıştır. Bu nedenle bir sonraki print
çağrısı yeni bir satırda başlamaktadır. Ancak, bu programda, her sütunun aynı satırda olmasını, yani her satır için yıldızlar yan yana gelmesini istiyoruz. Bu nedenle end
parametresini boşluk karakteriyle (" "
) değiştiriyoruz. Bu sayede, her satırın sütunları aynı satırda oluşturulur ve sonra bir sonraki satıra geçilir. Kodu çalıştırmak için: Trinket
❗ end
parametresi, print
fonksiyonunun bir parametresidir ve varsayılan olarak yeni satır başlatması için (‘\n
‘) olarak ayarlanmıştır. Bu nedenle, print
fonksiyonu her çağrıldığında, varsayılan olarak yeni bir satırda başlar.
- Aşağıdaki gibi bir dikdörtgen şeklindeki yıldızlamayı kodlayınız:
1 2 3 4 5 |
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
Benzer şekilde çözümümüzde iç içe for döngüsü kullandık.
1 2 3 4 5 6 7 |
satir = int(input("Satır sayısını giriniz: ")) sutun = int(input("Sütun sayısını giriniz: ")) for i in range(satir): for j in range(sutun): print("* ", end="") print() |
Kodumuz, kullanıcının girdiği satır ve sütun sayısına göre bir dikdörtgen oluşturur. Her satırdaki yıldızlar arasında boşluk bulunur ve her satırın sonunda yeni bir satır başlar. Kodu çalıştırmak için: Trinket
- Aşağıdaki gibi dik üçgen şeklinde yıldızlanmış şekli kodlayınız:
1 2 3 4 5 |
* * * * * * * * * * * * * * * |
Benzer şekilde çözümümüzde iç içe for döngüsü kullandık. Bakınız:
1 2 3 4 5 6 |
satir = int(input("Satır sayısını giriniz: ")) for i in range(1, satir + 1): for j in range(1, i + 1): print("* ", end="") print() |
Örnektekine benzer şekiller çizmek için, dış döngü her çalıştığında, iç döngü bir öncekinden bir fazla çalıştırmamız gerekir. Bu, her satırda bir yıldız daha fazla basılmasını sağlar ve sonuç olarak bir üçgen oluşturulur. Kodu çalıştırmak için: Trinket
- İkinci yöntem olarak özyineli bir fonksiyon kullanabiliriz. Özyineli fonksiyonlar, bir fonksiyonun kendi içinde tekrar çağrılmasıyla çalışır. Bu örnekte,
f
fonksiyonu,n
0’dan büyük olduğu sürece kendini tekrar çağırır ve her çağrıldığından
‘yi 1 azaltır ve de fonksiyonun,n
0 olduğunda sona ermesini sağlar. Fonksiyon her çağrıldığında,n
sayısı kadar yıldız basar. Bakınız:
1 2 3 4 5 6 7 |
def f(n): if n>0: f(n-1) print ("*"*n) x = int (input("yıldız sayısı girin!")) f(x) |
Kodu çalıştırmak için: Trinket
- Üçüncü yöntem
1 2 3 4 |
n = int (input("Bir rakam giriniz...")) for i in range (1,n+1): print("*"*i) |
Bu çözüm yolumuzda for
döngüsü ile 1
‘den n+1
‘e kadar olan sayılar üzerinde dönülüyor. Burada range(1, n+1)
fonksiyonu 1
‘den n
‘e kadar olan sayılar üzerinden dönmeye yarar. Örneğin n=5
ise, range(1, n+1)
fonksiyonu 1
‘den 5
‘e kadar olan sayılar üzerinden dönecektir.
Her dönüşte print
fonksiyonu ile ekrana yıldızlar yazdırılıyor. "*"
karakteri, döngünün hangi aşamada olduğunu belirten i
değişkeni kadar çoğaltılıyor. Yani i=1
iken bir tane, i=2
iken iki tane yıldız yazdırılıyor. Bu sayede piramit şekli oluşturulmuş oluyor. Kodu çalıştırmak için: Trinket
- Aşağıdaki gibi yatay piramit şeklini kodlayınız:
1 2 3 4 5 6 7 8 9 |
* * * * * * * * * * * * * * * * * * * * * * * * * |
Kullanıcıdan bir sayı alıp, bu sayıya göre yukarıda gösterilen deseni oluşturmak için iki adet for döngüsü kullanacağız. Bakınız:
1 2 3 4 5 6 |
n = int(input("Bir rakam giriniz...")) for i in range(1, n+1): print("* " * i) for i in range(n-1, 0, -1): print("* " * i) |
İlk döngü, yıldızları artan sırayla yazdırır. 1’den başlar ve her satırda bir yıldız daha ekler. Bu, döngünün 1’den n’e kadar olan sayılar üzerinde çalışacağı anlamına gelir. Yani, eğer n=5 ise, döngü 1, 2, 3, 4, 5 sayıları için çalışır. Desenin üst yarısını bu mantıkla oluşturduk.
İkinci döngü ise yıldızları azaltan sırayla yazdırır. n-1
‘den başlar ve her satırda bir yıldız eksiltir. Bu, döngünün n-1’den 1’e kadar olan sayılar üzerinde çalışacağı anlamına gelir ve her adımda sayıyı bir azaltır. Yani, eğer n=5 ise, döngü 4, 3, 2, 1 sayıları için çalışır. Desenin alt yarısını da bu şekilde oluşturmul olduk.
İki döngü, yani iki yarının çıktısı bir araya geldiğinde, tamamıyla simetrik bir desen oluştururlar. Kodu çalıştırmak için: Trinket
- Aşağıdaki gibi, Python kullanarak yıldızlarla piramit çizelim:
1 2 3 4 5 |
* *** ***** ******* ********* |
Yukarıdaki gibi yıldızlarla bir piramit çizmek için aşağıdaki adımları yaparız:
- Kullanıcıdan piramidin kaç satır olacağını belirlemesini istiyoruz. Bu sayıyı
n
değişkenine atıyoruz. - Daha sonra, 1’den
n
‘e kadar olan sayılar üzerinde bir döngü başlatıyoruz. Her bir sayı, piramidin bir satırını temsil eder. - Her satır için, öncelikle piramidin o satırında bulunması gereken boşluk sayısını belirliyoruz. Bu,
n-i
tane boşluk olacak şekilde hesaplanır.i
, şu anki satır numarasıdır ven
, toplam satır sayısıdır. Örneğin, 5 satırlık bir piramitte, 1. satırda 4 boşluk, 2. satırda 3 boşluk, ve son satırda 0 boşluk olacaktır. - Daha sonra, her satırdaki yıldız sayısını belirliyoruz. Bu,
2*i-1
tane yıldız olacak şekilde hesaplanır. Örneğin, 1. satırda 1 yıldız, 2. satırda 3 yıldız, ve 5. satırda 9 yıldız olacaktır. - Her satırı tamamladıktan sonra, bir sonraki satıra geçmek için
print()
fonksiyonunu çağırıyoruz. - Döngü tamamlandığında, piramit tamamlanmış olur ve program sona erer.
1 2 3 4 5 6 7 8 9 10 11 |
n = int(input("Kaç satırlık piramit çizmek istiyorsunuz? ")) for i in range(1, n+1): # Her satır için boşlukları yazdır for j in range(n-i): print(" ", end="") # Her satır için yıldızları yazdır for j in range(2*i-1): print("*", end="") # Yeni satıra geç print() |
Yukarıdaki kod, kullanıcıdan kaç satırlık bir piramit çizmek istediğini sorar ve belirtilen sayıda satırı olan bir piramit çizer. Her satır için, önce boşluklar, sonra yıldızlar yazdırılır. Kodu çalıştırmak için: Trinket
- Aşağıdaki gibi, Python kullanarak yıldızlarla ters piramit çizelim:
1 2 3 4 5 |
********* ******* ***** *** * |
Ters piramit çizmek için, yukarıda verdiğimiz kodun sadece birkaç yerini değiştireceğiz. Benzer şekilde çözüm yaklaşımımızı adım adım yazalım:
- Kullanıcıdan piramidin kaç satırlık olacağını belirten bir tam sayı alıyoruz.
n
‘den 1’e kadar olan sayılar üzerinden bir döngü başlatıyoruz. Bu döngü her iterasyonunda bir satırı ekrana yazdırır. Döngün
‘den başlar ve her iterasyonda bir azalır, böylece en üstteki satır en geniş satır olur.- İlk iç döngü, her satırın başında yazılacak boşlukları ekrana yazdırır. Bu döngü,
n-i
kez çalışır. Yani, en üst satırda (i=n) 0 boşluk, en alt satırda (i=1)n-1
boşluk yazdırılır. - İkinci iç döngü, her satırın yıldızlarını ekrana yazdırır. Bu döngü,
2*i-1
kez çalışır. Yani, en üst satırda (i=n)2*n-1
yıldız, en alt satırda (i=1) 1 yıldız yazdırılır. - Her iki iç döngü de
print
fonksiyonunuend=''
parametresiyle çağırır. Bu sayede,print
fonksiyonu her çağrıldığında bir satır atlamaz, aynı satıra devam eder. - En içteki iki döngünün ardından,
print()
fonksiyonunu parametresiz çağırarak bir satır atlıyoruz. Bu sayede, bir sonraki iterasyonda yeni bir satıra geçmiş oluyoruz. - Döngü bittiğinde, piramit tamamlanmış olur.
1 2 3 4 5 6 7 8 |
n = int(input("Kaç satırlık piramit olsun? ")) for i in range(n, 0, -1): for j in range(n-i): print(' ', end='') for j in range(2*i-1): print('*', end='') print() |
Kodu çalıştırmak için: Trinket
salam mellim necesiz
yıldızlar nasıl ters çevirilir