Çözüldü Bu Python kodunda hata nerede?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Katılım
10 Mayıs 2020
Mesajlar
127
Kodlar şöyle bir hata veriyor;
Python:
Traceback (most recent call last):
  File "C:/Users/HP/Desktop/Soru/sorunatör.py", line 30, in <module>
    Cevap_Sil()
  File "C:/Users/HP/Desktop/Soru/sorunatör.py", line 24, in Cevap_Sil
    del içerik[silincekbölüm]
IndexError: list assignment index out of range
Kodlar;
Python:
import random
sorular=open("sorular.txt","r")
sorusatırı=random.randint(1,7)
şimdikisorun=sorular.readlines(sorusatırı)
print(şimdikisorun)
cevap=input("Cevabı giriniz.")
cevaplar=open("cevaplar.txt","r")
cevabındoğrumu=cevaplar.readline(sorusatırı)
print("Cevap: ",cevabındoğrumu)
cevaplar.close()
cevapartın=cevap+'\n'
def soru_sil():
    oku = open("sorular.txt","r")
    icerik=oku.readlines()
    del icerik[sorusatırı-1]
    oku.close()
    yaz = open("sorular.txt","w")
    yaz.writelines(icerik)
    yaz.close()
def Cevap_Sil():
    oku = open("cevaplar.txt","r")
    içerik=oku.readlines()
    silincekbölüm=sorusatırı-1
    del içerik[silincekbölüm]
    oku.close()
    yaz = open("cevaplar.txt","w")
    yaz.writelines(içerik)
    yaz.close()
if cevapartın==cevabındoğrumu:
    Cevap_Sil()
    soru_sil()
    print("Cevabın Doğru")
if cevapartın!=cevabındoğrumu:
    print("Cevabın yanlış :( ")
Yardımcı olursanız sevinirim. Şimdiden teşekkürler.
 
Çözüm
Sorusatırı=random. Randint(1, 7)

Burayı sorusatırı=random.randint(0,6) yapmayı dene çünkü indeksleme 0'dan başlar.

"Silinecekbölüm" ne? Makine Türkçe karakter ile işlem yapamaz.

Yapabilir. Python ve C# değişken isimlerinde Türkçe karakter destekliyor.

Hata mesajında sıralamayla ilgili bir yanlışlığın olduğundan bahsediyor.

Var olmayan bir indekste işlem yapmaya çalıştığı için bu hatayı almış.
Pyhton bilmiyorum ancak şunu fark ettim Türkçe karakter kullanmışsınız.
Türkçe karakter kaynaklı olabilir.

Üstteki arkadaşın dediği gibi stringlerde Türkçe karakter kullanmanız sorun yaratır İngilizce karakterleri kullanmaya özen gösteriniz. Hata mesajında sıralamayla ilgili bir yanlışlığın olduğundan bahsediyor.
 
Sorusatırı=random. Randint(1, 7)

Burayı sorusatırı=random.randint(0,6) yapmayı dene çünkü indeksleme 0'dan başlar.

"Silinecekbölüm" ne? Makine Türkçe karakter ile işlem yapamaz.

Yapabilir. Python ve C# değişken isimlerinde Türkçe karakter destekliyor.

Hata mesajında sıralamayla ilgili bir yanlışlığın olduğundan bahsediyor.

Var olmayan bir indekste işlem yapmaya çalıştığı için bu hatayı almış.
 
Son düzenleme:
Çözüm
Pyhton bilmiyorum ancak şunu fark ettim Türkçe karakter kullanmışsınız.
Türkçe karakter kaynaklı olabilir.

"Silinecekbölüm" ne? Makine Türkçe karakter ile işlem yapamaz.

Üstteki arkadaşın dediği gibi stringlerde Türkçe karakter kullanmanız sorun yaratır İngilizce karakterleri kullanmaya özen gösteriniz. Hata mesajında sıralamayla ilgili bir yanlışlığın olduğundan bahsediyor.

Zaten ilk başta bunu da denemiştim. Sonuç aynıydı. Yine de teşekkürler.
 

Geri
Yukarı