Python list içindeki kelimeleri kullanmak

Dostlar merhaba,

Şimdi amacım şu: List içinde bulunan tüm kelimeleri doğru şekilde listeledim. Fakat ben içindeki kelimelerden herhangi bir tanesi geçerse işlem yapmak istiyorum.

Mesela konsoldan “Merhaba”, “Selam”, “Ne haber” dedik. Ben bu üç kelimeden sonra aynı işlemi yapmasını istiyorum.

merhabalar = "merhaba, Selam, ne haber"

splittt = merhabalar.split(", ")

Burada tıkandım kaldım. Nasıl dediğim şeyi yapabilirim? Baya bir araştırdım ama istediğim şeyi bulamadım.

Nereden ya da nerede geçerse ?

Ne işlemi ?

Şöyle bir şey mi olacak ?

merhabalar = "merhaba, Selam, ne haber"
splittt = merhabalar.split(", ")
response = input()
if response in splittt:
   print("işlem")
else:
   print(-1)
3 Beğeni

Öncelikle, bu veri tipi liste değil string. Split metodu da zatenstring sınıfının bir fonksiyonudur. Sizin işinizi şu çok daha rahat görecektir:


selamlamalar = ['selam', 'merhaba', 'hey', 'hop']

girdi = input('>>>')

if girdi in selamlamalar:
    # kod bloğunuz
1 Beğeni

Arkadaşlar,

merhabalar = "nasılsın, merhaba, Selam, ne haber"

asdd = merhabalar.split(", ")
print(asdd)
def response(voice):
    if asdd in asdd:
        speak("İyiyim sen")

Şöyle bir kod var.

Bu kodda amacım, eğer nasılsın, merhaba, Selam, ne haber kelimeleri denirse “İyiyim sen” dedirtmeye çalışıyorum. dediğiniz kodu yaptım fakat hiç bir tepki vermiyor. print(asdd) ile sadece denilen şeyi söylüyor. Fakat dediğim gibi bana geri dönüş yapmıyor.

Sorun tam olarak nerede?

Daha sonrasında, bu fonksiyonu çağırmayı unutmadınız değil mi?

Bir de,

if asdd in asdd:
        speak("İyiyim sen")

False değer döndürecek bir ifadedir. Bu yüzden de olabilir.

merhabalar = "nasılsın, merhaba, Selam, ne haber"

asdd = merhabalar.split(", ")
print(asdd)
def response(voice):
    for word in asdd:
        if word in asdd:
            speak("İyiyim sen")
            break

Bunu dener misiniz?

Bu hep ilk turda if'e girip for'dan çıkmaz mı liste boş felan değilse?

Aslında asıl soruyu siz ve başka biri yukarıda yanıtlamışsınız…

1 Beğeni

O breaki listede kaç eleman varsa o kadar word print edilmesini engellemek için koymuştum. Evet yukarıda da aslında bunun koşul ifadesiz hali için birtakım şeyler yazmışız.

if'e gerek var mıdır orada o zaman?

for word in asdd:
        if word in asdd:
            speak("İyiyim sen")
            break

Buradaki if olmazsa asdd içinde örneğin “saat kaç?” cümlesi de olsa, “İyiyim sen” bastırılırdı.

asdd'deki her word için:
  eğer word asdd'nin içindeyse:   # öyledir, zaten asdd'deki elemanlara bakıyoruz :ğ

Heralde bir typo olmuş ilk asdd'de anlattığınızdan anladığım kadarıyla.

1 Beğeni

Anlamamakta epey ısrar etmişim… Doğru söylüyorsunuz oradaki if bloğu işlevsiz.