Kayda random bir kayıt numarası atama

merhabalar ben kullanıcıdan aldığım verileri rastgele oluşturduğum bir kullanıcı kodu ile öğrenci bilgileri sınıfına atamak istiyorum (amacım kaydettiğim verilerin çakışmaması ve daha sonradan aynı kod ile verileri çağırabilmek) ancak e değişkenine atadığım kod değişken olarak atanmıyor “e” karakteri atanıyor sadece bunu nasıl düzeltebilirim acaba

kayıt = input("\n\nÖğrencinin adı: {}\nÖğrencinin Soyadı: {}\nÖğrencinin Yaşı: {}\nÖğrencinin Sınıfı: {}\n\nKaydetmek istiyorsanız ''e'' tuşuna İstemiyorsanız 'h' tuşuna basınız".format(öğrenci_adı, öğrenci_soyadı,öğrenci_yaşı, öğrenci_sınıfı))

if kayıt == "e":
    liste = [1, 2, 3, 4, 5, 6, 7, 8, 9, "q", "w", "e", "r", "t", "y", "u", "ı", "o", "p", "ğ", "ü", "a",
             "s", "d", "f", "g", "h", "j", "k", "l", "ş", "i", "z", "x", "c", "v", "b", "n", "m", "ö", "ç"]
    i = 0
    e = "e"
    while (i < 4):
        a = random.choice(liste)
        değer = str(a)
        e += değer
        i += 1
 
    
    e=str(e)
    e = öğrenci_bilgileri(öğrenci_adı, öğrenci_soyadı, öğrenci_yaşı,öğrenci_sınıfı)
    öğrenci_kütüphanesi[e]=kayıt_listesi
    print("kayıt Kodunuz:", e)
    break

Kodlarınıza kod görünümü kazandırarak, onları daha okunaklı hale getirebilirsiniz.

uyarı için teşekkürler, düzenledim

Olmamış.

Kayıt numarasını, öğrenci listesinin uzunluğuna göre belirleyebilirsiniz. Böylece her öğrencinin kayıt numarası farklı olur.

Kayıt listesini bilgileri bir sözlük içerisinde value olarak atamak için yaptım. Kodun kendi akışında kullanıcıdan alınan bilgiler bir liste içine atılıyor daha sonra “e” değişkenine atanan kullanıcı adı da bir sözlük içerisinde key olarak atanıyor. Kullanıcı kodu sorguladığında sözlük içerisindeki liste ekrana bastırılıyor. Ancak e değişkenine random oluşan kodu atayamıyorum

Kodlarınızda bariz yanlışlıklar var aslında.

Önce e'nin değerini "e" olarak belirliyorsunuz.
Sonra bir while döngüsünde e'nin değerini değiştiriyorsunuz.
Sonra e'yi öğrenci_bilgileri isimli bir fonksiyondan dönen değere eşitliyorsunuz.
öğrenci_kütüphanesi[e] ifadesindeki e, öğrenci_bilgileri fonksiyonundan dönen değer. Yani sizin bir kayıt numarası olarak kullanacağınız e çoktan uçup gitmiş oluyor.

Ben olsam, her öğrenciye ulaşmak için düzenli numaralar kullanırdım.

def ogrenci_bilgileri_al(istenen_bilgiler):
    return {i: input(f"{i}: ") for i in istenen_bilgiler}
    
    
def ogrenci_kayit_et(istenen_bilgiler, kayitlar):
    kayit = ogrenci_bilgileri_al(istenen_bilgiler)
    kayit_sorgusu = input(
        "Kaydetmek istiyorsanız 'e', istemiyorsanız, 'h' tuşuna basınız."
    )
    if kayit_sorgusu == "e":
        kayitlar[len(kayitlar)] = kayit
        
        
def main():
    kayitlar = {}
    istenen_bilgiler = [
        "Öğrencinin Adı",
        "Öğrencinin Soyadı",
        "Öğrencinin Yaşı",
        "Öğrencinin Sınıfı"
    ]
    for i in range(2):
        ogrenci_kayit_et(istenen_bilgiler, kayitlar)
        print(kayitlar)
    print(kayitlar[0]["Öğrencinin Adı"])
    print(kayitlar[1]["Öğrencinin Adı"])
    
    
main()
1 Beğeni

teşekkür ederim çok işime yaradı bu