Merhaba. Aşağıdaki kodlarda saçmalamayı bir türlü önleyemedim.
#bu kelimeleri sql ile arayacağız
a = "ali okuldan geldiğinde ben evde yoktum"
#tablodaki toplam data şöyle:
im.execute("select algi from sohbet")
print(im.fetchall())
#[('ali okuldan geldi',), ('ali okuldan gelince yemek yedi',),
#('ali okuldan gelirse bakkala gönder',), ('sen gittiğinde ben evde idim',),
#('sen gelmişken ben yatıyordum',), ('geldin ama evde yemek yok',),
#('bugün tatil okul yok',), ('alacaktım ama paramız yok',)]
k = 0
for i in range(len(a)): #ilk harften başlayarak ve devam eden her harfi ekleyerek
t = (a[0:i])
im.execute("select algi from sohbet where algi like '{}%'".format(t))
s = im.fetchall()
if not s:# boş liste döndüğü anda
t = (a[0:i-1])# bir adım geriye, en son dolu döngüye
im.execute("select algi from sohbet where algi like '{}%'".format(t))
s = im.fetchall()
print(s)# [('ali okuldan geldi',)]
b = a.replace(t, "")# cümlenin geri kalanı için
print(b)# ğinde ben evde yoktum
#break
#amacım, "b"yi yeni bir string olarak alıp yukarıdaki işlemi devam ettirmek.
#aşağıdaki kodlar sonuçsuz denemelerimden sadece biri
for i in range(len(b)):
t = (b[k:i])
im.execute("select algi from sohbet where algi like '{}%'".format(t))
s = im.fetchall()
if not s:
k+=1
print(t)
print(s)
# bu kodlar boş liste döndürmeye devam ediyor
#halbuki kalan parçada "ben", "evde" ve "yoktu" kelimeleri ile, toplamda eşleşme beklentim:
#"ali okuldan geldi... ben evde... yoktu.."
Yardım lütfen