Merhaba python’a ve siteye yeniyim. basit bir tic tac toe kodunda liste üreteci kullanılmış, ben yerine içiçe for döngüsü kullanmak istediğimde program aynı çıktıyı neden vermiyor anlayamadım. oyun kodunu uzun olmasın diye en sade haline getirdim bu kod işi görüyor:
kazanma_ölçütleri = [[[0, 0], [1, 0], [2, 0]],
[[0, 1], [1, 1], [2, 1]],
[[0, 2], [1, 2], [2, 2]],
[[0, 0], [0, 1], [0, 2]],
[[1, 0], [1, 1], [1, 2]],
[[2, 0], [2, 1], [2, 2]],
[[0, 0], [1, 1], [2, 2]],
[[0, 2], [1, 1], [2, 0]]]
o_durumu = [[0, 1], [1, 1], [0, 0], [2, 2]]
for i in kazanma_ölçütleri:
o = [z for z in i if z in o_durumu]
if len(o) == len(i):
print(o)
print("o kazandı")
Bense o = [z for z in i if z in o_durumu] yerine:
o = []
for i in kazanma_ölçütleri:
for z in i:
if z in o_durumu
o += [z]
if len(o) == len(i):
print(o)
print("o kazandı")
o listesi: o_durumundaki itemler kazanma ölçütlerinde de varsa o’ya ekleniyor. o listesi kazanma ölçütlerindekiyle aynı sayıya ulaşınca kazandı çıktısı veriyor.
şöyle bir kod kullanmaya çalıştım(anlamak için), ama yanlış sonuç veriyor. o=[] listesini for döngüsü içinde tanımlarsam da boş çıktı alıyorum. Henüz her şeyin mantığını kavramış değilim, neden o listesini for döngüsü içine alınca çıktı vermiyor? burada içiçe for döngüleri yerine liste üretecini kullanma zorunluluğu nerden geliyor? Biri bu olayın mantığını anlamama yardım ederse çok sevinirim, teşekkürler şimdiden.