Python Piramit Yazdırma

Beyler for döngüsüyle piramit yazdıracağız içinde for içinde for olduğundan dolayı kafam duman oldu açıklayarak anlatan birisi olursa hayır duamı alır.

-İçinde for ve if’ten başka bir döngü yoktu.

İstenen:
*
* *
* *
* *
*******

piramit = range(1,10) #kaç basamaklı piramit istiyorsan sondaki sayıyı o kadar yap

artis = 1 #her döngüde oluşturulacak basamak sayısı

for i in piramit:

    print("*"*artis) #e bu da print yani
    artis += 1 #her döngüde oluşturulacak basamak sayısını arttırdık

güzelleştirmek istersen

from time import sleep

piramit = range(1,10) #kaç basamaklı piramit istiyorsan sondaki sayıyı o kadar yap
artis = 1 #her döngüde oluşturulacak basamak sayısı

for i in piramit:

    print("*"*artis) #e bu da print yani
    sleep(0.3) #0.3 saniye de bir işlemi gerçekleştirir.
    artis += 1 #her döngüde oluşturulacak basamak sayısını arttırdık

(range belirtilen değerler kadar liste oluşturur. Liste içeriğinde belirtilen değerlerin arasındaki değerler yer alır)

Mutlaka 1,2,2,2,7 şeklinde mi olacak piramit?

Dediği şekilde ise eğer;

from time import sleep

piramit = range(1,50) #kaç basamaklı piramit istiyorsan sondaki sayıyı o kadar yap
artis = 1 #her döngüde oluşturulacak basamak sayısı
tekrar = 1

for i in piramit:

    print("*"*artis) #e bu da print yani
    sleep(0.3) #0.3 saniye de bir işlemi gerçekleştirir
    tekrar += 1 #kaçıncı tekrar olduğunu hesaplayacağız

    if tekrar > 1: #bir basamaklı döngü tamamlandı mı? Bunu kontrol ediyoruz.

        artis = 2 #iki basamak oluşturması için değişkeni değiştiriyoruz.

    if tekrar > 4: #iki basamaklı döngü tamamlandı mı? Bunu kontrol ediyoruz.

        artis = 7 #son basamaği oluşturması için değişkeni değiştiriyoruz.

    if tekrar > 5: #son basamakta tamamlandıysa eğer en bala dönüyoruz.

        print()

        artis = 1 #ilk başta oluşturulacak değerlere geri dönüyoruz.
        tekrar = 1 #ilk başta oluşturulacak değerlere geri dönüyoruz.
print("*\n* *\n* *\n* *\n*******")

Soruda şekilli çiziyorumda olmuyor piramit olacak.
1.satır = 4 boşluk bir yıldız,
2.satır = 3 boşluk 1 yıldız 1 boşluk 1 yıldız
3.satır = 2 boşluk 1 yıldız 3 boşluk 1 yıldız
4.satır = 1 boşluk 1 yıldız 5 boşluk 1 yıldız
5.satır = 9 yıldız
şekilinde piramit olacak.

    *
   * *
  *   *
 *     *
*********

Böyle sanırım.

Aynen de onu direk öyle yazdırmayacağız for döngüsüyle ben çözdüm bu arada.

for i in range(5):
for j in range(5-i):
print(“0”,end=’’)

for j in range (2*i+1):
    if j==0 or j==2*i or i==4:
        print('*',end='')
    else:
        print(' ', end='')
        
print()
def piramit_ciz(son_yildiz_miktari, satir_sayisi):
    fark = son_yildiz_miktari - 1
    artis_miktari = fark / (satir_sayisi - 1)

    for satir in range(satir_sayisi):
        mevcut_yildiz_miktari = int(1 + (artis_miktari * satir))
        if satir == 0:
            print((son_yildiz_miktari - 1)//2 * " " + "*")
        elif satir == satir_sayisi - 1:
            print(son_yildiz_miktari * "*")
        else:
            print((son_yildiz_miktari - mevcut_yildiz_miktari)//2 * " " + "*" + ((mevcut_yildiz_miktari - 2)* " ") + "*")

piramit_ciz(9, 5)

    *
   * *
  *   *
 *     *
*********

piramit_ciz(17, 5)

        *
      *   *
    *       *
  *           *
*****************

piramit_ciz(17, 9)

        *
       * *
      *   *
     *     *
    *       *
   *         *
  *           *
 *             *
*****************
5 Beğeni