Sözlük içinde oluşturulan sözlükteki value değerleri nasıl biçimlendirilir

Merhaba value.values değerlerinin ciktisini aşağıdaki gibi goruntuye kavuşturmak için print fonksıyonunda nasıl bir biçimlendirme yapmalıyım. Teşekkürler

Student No : 244 Oguz Turkyilmaz 5549008080
Student No : 770 Doruk Turkyilmaz 5558008787

students = {}
while True:

    number = input("Enter Student Number : ")
    if number == '0':
        break
    name = input("Student's Name : ")
    surname = input("Student's Surname: ")
    phone = input("Student's Phone Number : ")
    students.update({
        number: {
            'name': name,
            'surname': surname,
            'phone': phone
        }
    })

for key, value in students.items():
    print(f"Student No : {key}  {value.values()}")

Merhaba,

Şöyle yapabilirsiniz:

for key, value in students.items():
    print(f"Student No: {key}  {' '.join(value.values())}")

@dildeolupbiten " \t " kullanamadigimdan tab ile values de[erlerinin arasini ayarlayamadim. Aşağıdaki gibi düzenlenmiş bir çıktıyı almanın yolu var mı?
Student No : 244 Oguz Turkyilmaz 5459009898
Student No : 770 Doruk Han 5548987878
Screenshot_3

Aşağıdaki dediğiniz hangisi, resimdeki çıktı mı yoksa şunlar mı?

 Student No : 244 Oguz Turkyilmaz 5459009898

Şayet bu son paylaştığım çıktı ise, kodları şöyle yaparsanız aynı çıktıyı alırsınız.

for key, value in students.items():
    print(f"Student No : {key} {' '.join(value.values())}")

Çıktı:

Student No : 1 X Y Z
Student No : 2 Ahmet Koç rlgkrlg

Almak istediğiniz, çıktı nasıl bir çıktı, hizalı mı olacak yani?

Allah allah ben hizalamıştım kaymış hepsi pardon
hepsinin sütun başlarından hizalanmasını sağlamaya çalışıyorum.

Student No : 244 Oguz Turkyilmaz 5459009898
Student No : 770 Doruk Han 5548987878
gibi.

Ama paylaştığınız çıktıda numaralar hizalı değil? Sadece aralarında 1 adet boşluk var.

@dildeolupbiten Pardon ya ben hizalıyorum ama onlar kayıyor bir saniye
Screenshot_4

bunun gibi olmasını sağlamaya çalışıyorum.

Şöyle yapabilirsiniz:

for key, value in students.items():
    print(
        "Student No : {:<5} {}".format(
            key, 
            "".join("{:<10}".format(i) for i in value.values())
        )
    )

Çıktı:

Student No : 12    Ali       Duran     555
Student No : 654   Murat     Bakır     666

40 gün 40 gece uğraşsam belki çözerdim. {:<5} bu yapilari okudum ama f-stringle bu yapiyi ayni anda kullanamadim. Şimdi sizin kodu tarumar edip nasıl yaptığınızı anlıyım sonra f-strıngle yapmaya çalışırım. Çok teşekkürler

Bence böyle bir çıktı almak için f-string ile hiç uğraşmayın. Bunun yerine format metodunu kullanın. Sonuçta format bir string biçimlendirme metodu ve f-string'in yapabileceğinden daha fazlasını format metoduyla yapabilirsiniz. Yine de siz bilirsiniz.

Tavsiyeleriniz benim için önemli ben f-stringi format metodunun daha gelişmişi diye düşündüğüm için ( sanırım bunda da yeni geliştirilmesinin etkisi var ) hep onu kullanmaya çalışıyorum. Format metodunun üstünden bir kaç kaynaktan geçeyim o zaman. Çıktının son hali bu şekilde oldu
Screenshot_5

Hallettim Tekrar Teşekkürler

1 Beğeni

Daha gelişmişi gibi düşünmedim hiç. Şöyle düşünüyorum; f-string kullanacağımız yerler var, format metodunu kullanmamızın daha kullanışlı olduğu yerler var.

for ve while gibi sanirim. Ben hangisi nerde daha kullanışlı tespitini 2-3 ay sonunda yeni yeni öğreniyorum. Bu da o kadar zaman alır herhalde. Bu hızla ölmeden önce tam olarak öğrenirim kodlamayı artık :grimacing:. Kendinize iyi bakın. Sağlıklı günler dilerim.

1 Beğeni

abi şuna bakar mısın Sesli asistan ses algılamıyor

Yaklaşım 4 senedir Python ile ilgileniyorum. Tam olarak öğrendiğimi söyleyemem. Zamanla zaten bir alana diğerinden daha fazla ilgi duyuyorsunuz. Dolayısıyla o ilgi duyulmayan alanlarla alakalı bilgileri öğrenemiyoruz.

Daha önce hiç ilgilenmediğim bir alan bu. O yüzden yardımımın dokunabileceğimi sanmıyorum.

Ama siz forumda bir araştırma yapabilirsiniz. Bu konuyla alakalı sorular soran arkadaşlar vardı.

https://forum.yazbel.com/search?q=sesli%20asistan