Python Liste ile bilgi alıp gösterme

tosbikhack

Hectopat
Katılım
8 Ekim 2020
Mesajlar
55
Daha fazla  
Cinsiyet
Erkek
Python öğrenmeye çalışıyorum ve aklıma gelen her şeyi deniyorum. Karşıdaki kişiden bilgi alıp en son karşısına çıkarmak istiyorum. Yani listeye yazdığı şeyler en son önüne çıksın istiyorum ama kodu çalıştırdığımda "cevabınız için teşekkürler! Şarkılarınız: 123" yazıyor. Oradaki 123 yerine şarkıları göstermek istiyorum, nasıl yapabilirim?

Python:
import time

import os

print("ŞARKILARINIZ BİTİNCE 123 YAZINIZ")

while True:

    liste = input("istediğiniz şarkılar: ")

  

    if liste == "123":

        print("cevabınız için teşekkürler! Şarkılarınız:",liste)

        time.sleep(5)

        break
 
Son düzenleyen: Moderatör:
Python öğrenmeye çalışıyorum ve aklıma gelen her şeyi deniyorum. Karşıdaki kişiden bilgi alıp en son karşısına çıkarmak istiyorum. Yani listeye yazdığı şeyler en son önüne çıksın istiyorum ama kodu çalıştırdığımda "cevabınız için teşekkürler! Şarkılarınız: 123" yazıyor. Oradaki 123 yerine şarkıları göstermek istiyorum, nasıl yapabilirim?

Python:
import time

import os

print("ŞARKILARINIZ BİTİNCE 123 YAZINIZ")

while True:

    liste = input("istediğiniz şarkılar: ")

 

    if liste == "123":

        print("cevabınız için teşekkürler! Şarkılarınız:",liste)

        time.sleep(5)

        break
for döngüsü liste içinde gezebilirsin

While dışına yazsan güzel olur
for sarki in liste:
print(sarki)
 
Python:
song = None
songs =  []
while True:
    song = input("İstediğiniz şarkı: ")
    if song == "123":
        break
    songs.append(song)

print("Cevabınız için teşekkürler! Şarkılarınız:")

for item in songs:
    print(f"    {item}")
 
Çoooooooooooooooooooooooook mantıksız kod. Öncelikle bu şekilde tepki vermeme kızabilirsin. Önemli değil. Fakat azıcık mantığımızı kullanırsak kodun neden çalışmayacağını anlarız.

Python:
import time
import os

print("ŞARKILARINIZ BİTİNCE 123 YAZINIZ")

while True:
    liste = input("istediğiniz şarkılar: ")
    if liste == "123":
        print("cevabınız için teşekkürler! Şarkılarınız:",liste)
        time.sleep(5)
        break

Şimdi satır satır bakalım koduna. İlk 2 satırda gereksiz iki adet import var. Time kullanımı gereksiz, os kullanımı gereksiz. Os'ten hiç bir şey kullanmıyorsun. Daha sonra kullanacaksan bilemem.

while True:
Sonsuz bir döngü, çok sorun değil ama bu tarz bir durum için inp != "123" kullanmak daha mantıklı olur.
liste = input(". . .") Şimdi asıl noktaya geldik. Her seferinde liste adlı değişkene yeni bir değer veriyorsun. Stringe ekleme yapmıyor veya gerçek bir liste kullanmıyorsun. Dolayısıyla 123 girdiğin zamanda son değer olan 123'ü görüyorsun.
Bu şekilde istediğin sonucu elde ederdin. Aradaki printleri koymadım.
Python:
liste = []
inp = ""

while inp != "123":
    inp = input(". . .")
    liste.append(inp)

liste.pop()
print(liste)
 
Çoooooooooooooooooooooooook mantıksız kod. Öncelikle bu şekilde tepki vermeme kızabilirsin. Önemli değil. Fakat azıcık mantığımızı kullanırsak kodun neden çalışmayacağını anlarız.

Python:
import time.
import os.

print("ŞARKILARINIZ BİTİNCE 123 YAZINIZ")

while True:
 liste = input("istediğiniz şarkılar: ")
 if liste == "123":
 print("cevabınız için teşekkürler! Şarkılarınız:",liste)
 time.sleep(5)
 break

Şimdi satır satır bakalım koduna. İlk 2 satırda gereksiz iki adet import var. Time kullanımı gereksiz, OS kullanımı gereksiz. OS'ten hiçbir şey kullanmıyorsun. Daha sonra kullanacaksan bilemem.

while True:
Sonsuz bir döngü, çok sorun değil ama bu tarz bir durum için inp!= "123" kullanmak daha mantıklı olur.
liste = input(". . .") şimdi asıl noktaya geldik. Her seferinde liste adlı değişkene yeni bir değer veriyorsun. Stringe ekleme yapmıyor veya gerçek bir liste kullanmıyorsun. Dolayısıyla 123 girdiğin zamanda son değer olan 123'ü görüyorsun.
Bu şekilde istediğin sonucu elde ederdin. Aradaki printleri koymadım.
Python:
liste = []
inp = ""

while inp != "123":
 inp = input(". . .")
 liste.append(inp)

liste.pop()
print(liste)

Time kullanmamın sebebi kod bittikten sonra hemen kapanmaması için en azından bir süre bekletmekti OS eklememin amacı ise bazı yerlerde kirlilik oluşmasın diye cls eklemek için yazmıştım dediğim gibi daha yeni yeni öğrenmeye çalışıyorum bu yüzden birçok mantıksızlık olacaktır yorumun ve yardımın için teşekkür ederim.

For döngüsü liste içinde gezebilirsin.

While dışına yazsan güzel olur.
For sarki in liste:
Print(sarki)

Biraz daha kafama oturdu sayılır teşekkür ederim.
 

Yeni konular

Geri
Yukarı