Birden fazla soruyu birleştirme

bu üç if li cümleyi birleştirip reply ile random.choice yaparak cevap verdirme şansım var mı?

        if "ben de iyiyim teşekkürler" in voice:
            engine.say("Rica ederim senin için yapabileceğim birşey var mı?", gender=gender, rate=rate, pitch=pitch, vol=vol)
        if "ben de iyiyim" in voice:
            reply = ["senin için yapabileceğim birşey var mı?"]
            r = random.choice(reply)
            engine.say(r, gender=gender, rate=rate, pitch=pitch, vol=vol)
        if "iyiyim" in voice:
            engine.say("İyi olmana sevindim,senin için yapabileceğim birşey var mı?", gender=gender, rate=rate, pitch=pitch, vol=vol)

Telegram botu yazmıştım. Şöyle bir şey kullanmıştım.

cumleler = ["Rica ederim senin için yapabileceğim birşey var mı?", "senin için yapabileceğim birşey var mı?","İyi olmana sevindim,senin için yapabileceğim birşey var mı?"]
if "iyiyim" in voice:
   engine.say(random.choice(cumleler))

Şu kısmı geliştirebilirsin tabi. if “iyiyim” in voice: yerine if “iyiyim” in voice or “ben de iyiyim” in voice: gibi.

1 Beğeni

Merhabalar,

inputlar = ["ben de iyiyim teşekkürler", "ben de iyiyim", "iyiyim"]

cevaplar = ["Rica ederim senin için yapabileceğim birşey var mı?", "Rica ederim senin için yapabileceğim birşey var mı?", "İyi olmana sevindim,senin için yapabilecğeim birşey var mı?"]

if cevaplar in inputlar:
     r = random.choice(cevaplar)
     engine.say(r, gender=gender, rate=rate, pitch=pitch, vol=vol)

Bu kodun çalışacağını düşünüyorum. @sonsuz Hocamın da dediği çalışır.

1 Beğeni

Bununla bir liste başka bir listenin direkt olduğu gibi içinde mi diye bakıyorsunuz, yani

>>> liste_1 = [1, 2, 3]
>>> liste_2 = ["k", "l", "m", [1, 2, 3], "n"]
>>> liste_1 in liste_2
True

>>> liste_3 = ["k", "l", "m", 1, 2, 3, "n"]
>>> liste_1 in liste_3
False

Kod çalışıyor ama istediğiniz o muydu emin değilim.


any var:

>>> voice = "Ne kadar güzel bir hava"
>>> yanitlar = ["iyi", "güzel", "olumlu"]
>>> any(yanit in voice for yanit in yanitlar)
True

yanitlar içerisindeki herhangi (any) bir yanitın voice'in değerinin içinde (in) olup olmadığına bakıyor.

iyiyim dediğimde bana durumcumle integerin da ki bütün cümleleri okuyor onun bir çözümü var mı

        durumcumle = ["senin için yapabileceğim birşey var mı?", "İyi olmana sevindim,senin için yapabileceğim birşey var mı?"]
        tepkicumle = ["pekala kendine iyi bak seni burada bekliyor olacağım", "Pekala Ben burada seni bekliyor olacağım şimdilik görüşmek üzere", "Pekala Ben burada seni bekliyor olacağım şimdilik görüşmek üzere"]



#Olumlu Tepkiler
        if "ben de iyiyim teşekkürler" in voice:
            engine.say("Rica ederim senin için yapabileceğim birşey var mı?", gender=gender, rate=rate, pitch=pitch, vol=vol)
        if "ben de iyiyim" in voice:
            engine.say(random.choice(durumcumle), gender=gender, rate=rate, pitch=pitch, vol=vol)
        if "iyiyim" in voice:
            engine.say(random.choice(durumcumle), gender=gender, rate=rate, pitch=pitch, vol=vol)

Merhaba,

Random sistemi ile yapabiliriz.

rastgeledc = random.choice(durumcumle)
engine.say(rastgeledc)