5 adet yeni tablo oluşturduk(t1,…,t5)
input ile 4 kelimelik bir cümle girdik.
a=input("Bişeyler Yaz: ") #"buna ne oldu böyle"
b=a.split()
k=0
im.execute("insert into t1 select no, algi, count(*) c from ana where algi like (?) group by algi", ('%'+b[k]+'%',))
im.execute("insert into t2 select no, algi, count(*) c from ana where algi like (?) group by algi", ('%'+b[k+1]+'%',))
im.execute("insert into t3 select no, algi, count(*) c from ana where algi like (?) group by algi", ('%'+b[k+2]+'%',))
im.execute("insert into t4 select no, algi, count(*) c from ana where algi like (?) group by algi", ('%'+b[k+3]+'%',))
im.execute("insert into t4 select no, algi, count(*) c from ana where algi like (?) group by algi", ('%'+b[k+4]+'%',))
IndexError: list index out of range. # girişleri saymam gerekmeden, değişken sayısı kadar giriş istiyorum.
#while ve for döngüleri ile girişi sınırlamaya çalıştım ama aynı uyarı mesajı geliyor.
while (k<=len(b)-1): #dizinin eleman sayısına kadar giriş.
for i in (k<=len(b)-1):
# belki de döngüleri kullanmayı beceremedim. Yardım lütfen.
Uzun yoldan şöyle çözdüm:
if (len(b)-1)>=k:
im.execute("""insert into t1 select no, algi, count(*) c
from ana where algi like (?) group by algi""", ('%'+b[k]+'%',))
if (len(b)-1)>=k+1:
im.execute("""insert into t2 select no, algi, count(*) c
from ana where algi like (?) group by algi""", ('%'+b[k+1]+'%',))
if (len(b)-1)>=k+2:
im.execute("""insert into t3 select no, algi, count(*) c
from ana where algi like (?) group by algi""", ('%'+b[k+2]+'%',))
if (len(b)-1)>=k+3:
im.execute("""insert into t4 select no, algi, count(*) c
from ana where algi like (?) group by algi""", ('%'+b[k+3]+'%',))
if (len(b)-1)>=k+4:
im.execute("""insert into t5 select no, algi, count(*) c
from ana where algi like (?) group by algi""", ('%'+b[k+4]+'%',))
Kısa yolu için yardım bekliyorum, teşekkürler.