Python While döngüsündeki listenin sadece son hali nasıl printlenir?

berkaysama1

Centipat
Katılım
1 Ağustos 2023
Mesajlar
36
Daha fazla  
Cinsiyet
Erkek
Merhaba arkadaşlar, şu altta mavi ile içine aldığım kısmın sadece son halini ( [1,2,5] ) yazmasını istiyorum (kodu yukarıdaki mavi ile çizdiğim yer). Nasıl bunu yapabilirim ve kodu nereye nasıl yazabilirim? Yardımcı olursanız çok minnettar olurum, teşekkürler.

resim_2023-08-05_231121255.png
 
Son düzenleyen: Moderatör:
Ekran görüntüsüyle kod paylaşılmaz. Kod bloğunda paylaşın. Okunmuyor.

Döngünün içinde yazdırmaya çalıştığınız için döngü her tekrarlandığında listeyi yeniden yazdırıyor. While döngüsünün dışına koyarsanız bir kere yazdırır.

Kusura bakmayın bir dahakine kod olarak atarım ve cevap verdiğiniz için teşekkürler. Acaba müsaitseniz 1 soru daha sormak isterim.

Python:
print("""
***************

Mükkemel sayı bulma programına hoşgeldiniz

çıkmak için 1'e devam etmek için 2'e basınız

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

""")




i = 1
toplam = 0
liste = list()

while True:
    işlem = int(input("işlem seçiniz: "))

    if (işlem == 1):
       print("çıkış yapılıyor")
       break
    elif (işlem == 2):
        print("devam ediliyor\n")

        sayı = int(input("sayı giriniz:")

        while (i < sayı):
            if (sayı % i == 0):
                toplam += i
                liste.append(i)

            i += 1

        if (toplam == sayı):
            print(sayı, "mükemmel bir sayıdır")

        elif (toplam != sayı):
            print(sayı, "mükemmel bir sayı değildir")

        i = i + 1 - i
        toplam = toplam - toplam
        print(f"{sayı}'ı tam bölen sayılar", liste)

Döngünün içinde yazdırmaya çalıştığınız için döngü her tekrarlandığında listeyi yeniden yazdırıyor. While döngüsünün dışına koyarsanız bir kere yazdırır.
Acaba son attıgım kodda hata nerde niye error vermekte?
 
Son düzenleyen: Moderatör:
Kusura bakmayın bir dahakine kod olarak atarım ve cevap verdiğiniz için teşekkürler. Acaba müsaitseniz 1 soru daha sormak isterim.

Python:
print("""
***************

Mükkemel sayı bulma programına hoşgeldiniz

çıkmak için 1'e devam etmek için 2'e basınız

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

""")




i = 1
toplam = 0
liste = list()

while True:
    işlem = int(input("işlem seçiniz: "))

    if (işlem == 1):
       print("çıkış yapılıyor")
       break
    elif (işlem == 2):
        print("devam ediliyor\n")

        sayı = int(input("sayı giriniz:")

        while (i < sayı):
            if (sayı % i == 0):
                toplam += i
                liste.append(i)

            i += 1

        if (toplam == sayı):
            print(sayı, "mükemmel bir sayıdır")

        elif (toplam != sayı):
            print(sayı, "mükemmel bir sayı değildir")

        i = i + 1 - i
        toplam = toplam - toplam
        print(f"{sayı}'ı tam bölen sayılar", liste)


Acaba son attıgım kodda hata nerde niye error vermekte?
Hatayı da atın.
Print yine yanlış yerde.
 
Merhaba arkadaşlar, şu altta mavi ile içine aldığım kısmın sadece son halini ( [1,2,5] ) yazmasını istiyorum (kodu yukarıdaki mavi ile çizdiğim yer). Nasıl bunu yapabilirim ve kodu nereye nasıl yazabilirim? Yardımcı olursanız çok minnettar olurum, teşekkürler.

Eki Görüntüle 1891480
İlk mesaja cevap; Print işlemini bittikten sonra yaparsan son hali yazdırılmış olur. liste'ye her ekleme yaptığında print etmenin anlamı yok. while i < sayi: nın dışına yazmalasın.
Bu işlemin sonucunun 1 olduğunu biliyorsunuz öyle değil mi? + ve - işlemleri soldan sağa gider. * ve / işlemleri ise öncelikli olur. Lakin burada yaptığınız işlem gereksiz bir işlem. Sonuç i oluyor yine.
Sanırım biliyor; başta i'yi 1 tanımlamış, toplamı da 0. Tekrar = 1 ve = 0 yerine bu şekilde elde etmeye çalışıyor sanırım. Yani anlamadım tam olarak arkasındaki niyeti ama garip bir şekilde böyle yapmaya çalışmış gibi geldi.
 

Technopat Haberler

Geri
Yukarı