Şimdi Ara

Listeden string çıkarıyorum ama hata veriyor!

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
8
Cevap
0
Favori
472
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Bir asker ölünce veya mermisi bitince hata veriyor. Nasıl düzeltebilirim? Hatanın adı: "ValueError: list.remove(x): x not in list"

     
    import time
    import random

    class rekabet:
    def __init__(self, isim, can, saldiri_gucu, kalan_mermi):
    self.isim=isim
    self.can=can
    self.guc=saldiri_gucu
    self.kalan_mermi=kalan_mermi

    def saldir(self):
    print(self.isim, "saldırıyor!")
    harcanan_mermi=random.randrange(3,10)
    print(str(harcanan_mermi), "mermi harcandı.")
    self.kalan_mermi -= harcanan_mermi

    return(harcanan_mermi, self.guc)

    def vuruldu(self, harcanan_mermi, guc):
    print(self.isim, "vuruldu.\n")
    self.can -= (guc * harcanan_mermi)

    def mermi_bitti_mi(self):
    if(self.kalan_mermi<=0): """HATANIN OLDUĞU KISIM"""
    print(self.isim, "konuşuyor: Mermim bitti! Çekiliyorum.")
    dusmanlar.remove(self.isim)

    return True
    return False

    def hayatta_mi(self):
    if(self.can<=0):
    print(self.isim, "öldü.")
    dusmanlar.remove(self.isim)
    return True
    return False


    def print(self):
    time.sleep(2)
    print(self.isim, "Kalan can: {} Saldırı gücü: {} Mermi sayısı: {}".format(self.can,self.guc,self.kalan_mermi))


    dusmanlar= []
    karakter_isimleri=["Türk Askeri,","Rus Askeri,","Amerikan Askeri,","İtalyan Askeri,","Fransız Askeri,"]
    random.shuffle(karakter_isimleri) #listeyi karıştırdık

    i=0
    while(i<5):
    rastgele_isim=karakter_isimleri[i]
    rastgele_can=random.randrange(200,350)
    rastgele_guc=random.randrange(15,20)
    rastgele_mermi=random.randrange(15,20)

    dusman=rekabet(rastgele_isim, rastgele_can, rastgele_guc, rastgele_mermi)
    dusmanlar.append(dusman)
    i+=1

    print("Düşmanlar basılıyor...\n")
    time.sleep(3)

    for dusman in dusmanlar:
    dusman.print()


    print("\nDüşmanlar birbirine saldırıyor...\n")
    time.sleep(3)



    while(True):
    if (len(dusmanlar)==5):
    dusman1 = random.randint(0,4) # 0 ve 4 dahil. random.randrange(0,4) yapsaydık 0 dahil olacak ama 4 olmayacaktı.
    dusman2 = random.randint(0, 4)
    if (dusman2 == dusman1):
    continue
    else:
    print("\n\n")
    donen_deger = dusmanlar[dusman1].saldir() # return ile "donen_deger"e iki tane argüman atadık.
    dusmanlar[dusman2].vuruldu(donen_deger[0], donen_deger[1])
    time.sleep(2)

    dusmanlar[dusman1].mermi_bitti_mi()
    dusmanlar[dusman2].hayatta_mi()

    time.sleep(4)


    elif (len(dusmanlar) == 4):
    dusman1 = random.randint(0,3)
    dusman2 = random.randint(0,3)
    if (dusman2 == dusman1):
    continue
    else:
    print("\n\n")
    donen_deger = dusmanlar[dusman1].saldir() # return ile "donen_deger"e iki tane argüman atadık.
    dusmanlar[dusman2].vuruldu(donen_deger[0], donen_deger[1])
    time.sleep(2)

    dusmanlar[dusman1].mermi_bitti_mi()
    dusmanlar[dusman2].hayatta_mi()

    time.sleep(4)


    elif (len(dusmanlar) == 3):
    dusman1 = random.randint(0,2)
    dusman2 = random.randint(0,2)
    if (dusman2 == dusman1):
    continue
    else:
    print("\n\n")
    donen_deger = dusmanlar[dusman1].saldir() # return ile "donen_deger"e iki tane argüman atadık.
    dusmanlar[dusman2].vuruldu(donen_deger[0], donen_deger[1])
    time.sleep(2)

    dusmanlar[dusman1].mermi_bitti_mi()
    dusmanlar[dusman2].hayatta_mi()

    time.sleep(4)


    else:
    print("SAVAŞ BİTTİ!")
    break



    < Bu mesaj bu kişi tarafından değiştirildi PsLıcks -- 20 Eylül 2018; 14:29:42 >
    < Bu ileti mobil sürüm kullanılarak atıldı >







  • Mevcut kodu try bloguna al, hata vermesini engelleyebilirsin.
  • Listeden olmayan birseyi silmeye calisiyorsun

    Dusmanlar listesi rekabet tipinden objeleri tutuyor ama sen burada

    dusmanlar.remove(self.isim) string bir parametre veriyorsun dusmanlar.remove(self) yaparsan duzelir sanirim

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • ismailcoban365 İ kullanıcısına yanıt
    kurosaki_ichigo kullanıcısına yanıt
    Çözüldü teşekkürler başka bir yolunu buldum



    < Bu mesaj bu kişi tarafından değiştirildi PsLıcks -- 25 Eylül 2018; 22:52:16 >
    < Bu ileti mobil sürüm kullanılarak atıldı >
  • kurosaki_ichigo kullanıcısına yanıt
    Dediğin yöntem daha mantıklı geldi. Eyvallah sağol

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • quote:

    Orijinalden alıntı: ismailcoban365

    Mevcut kodu try bloguna al, hata vermesini engelleyebilirsin.

    Uygulamlari komple try catch e alalim da hicbiri hata vermesin.

    < Bu ileti tablet sürüm kullanılarak atıldı >
  • quote:

    Orijinalden alıntı: EddyCue


    quote:

    Orijinalden alıntı: ismailcoban365

    Mevcut kodu try bloguna al, hata vermesini engelleyebilirsin.

    Uygulamlari komple try catch e alalim da hicbiri hata vermesin.

    Böylece dünyaya iyilik, güzellik ve barış getirmiş olalım.

    < Bu ileti tablet sürüm kullanılarak atıldı >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.