Python Kodum neden çalışmıyor?

Merhabalar kodum neden çalışmıyor söyleyebilirmisiniz?
kod:

import random
class Kart :
    def __init__(self,tip,deger) -> None:
        self.tip = tip
        self.deger = deger
    def KartıGetir(self):
        print(f"{self.tip} + {self.deger}")
class Deste:
    def __init__(self):
        self.kalankartlar = []
        Kart_tipleri = ["karo", "sinek", "kupa", "maça"]
        Kart_degerleri = ["A",2,3,4,5,6,7,8,9,10,"J","Q","K"]
        for tip in Kart_tipleri:
            for deger in Kart_degerleri:
                self.kalankartlar.append(f"{tip} {deger}")
    def KartSayisi(self):
        kartsayisi=0
        for i in self.kalankartlar:
            kartsayisi += 1
        print(kartsayisi)
    def KartDagit(self,miktar):
        self.dagıtılankartlar = []
        self.atilankart = []
        if miktar > len(self.kalankartlar):
            print("Yeterli kart yok.")
        else:
            for i in range(miktar):

                rand = random.choice(self.kalankartlar)
                self.dagıtılankartlar.append(rand)
                index = self.kalankartlar.index(rand)
                print(index)
                self.kalankartlar.remove(index)
            print(self.dagıtılankartlar)
    def KartAt(self):
        self.atilankart.append(random.choice(self.dagıtılankartlar))
        index = self.dagıtılankartlar.index(self.atilankart)
        self.dagıtılankartlar.remove(index)
        print(f"Atılan kart: {self.atilankart} Kalan kartlar: {self.dagıtılankartlar}")

deste1 = Deste()
deste1.KartSayisi()
deste1.KartDagit(5)
deste1.KartSayisi()
deste1.KartAt()

Hata:

52
16
Traceback (most recent call last):
  File "Görmene gerek yok", line 57, in <module>
    deste1.KartDagit(5)
  File "Görmene gerek yok", line 47, in KartDagit
    self.kalankartlar.remove(index)
ValueError: list.remove(x): x not in list
1 Beğeni

Bayadır yazılım ile ilgilenemiyorum YKS sınavından dolayı, lakin bana şu eksik gibi geldi.

self.miktar = miktar

Telefondayım deneme yanılma ile de göremiyorum maalesef

neresi için?
20 karakter olması için

KartDağit kısmında öyle olması gerekmiyor muydu? Ben mi yanlış hatırlıyorum?

orda self kullanımına gerek yok diye biliyorum

bu arada indexin değişkeninin değeri hatadan önceki çıktı.

self.kalankartlar listesi içinde index değişkeninin değeri bulunmuyor.
Dolayısıyla listede bulunmayan bir elemanı silmeye çalıştığınız için hata alıyorsunuz.

Evet, remove(index) yerine pop(index) yapılması gerekiyor.