BİLGİ SAYAMIYORUM beta

Python da bir string (yazı) içerisinde başka bir (sub)string in varlığı nasıl kontrol edilir, onu içerip içermediğine nasıl bakılır?

0

Daha önce başka python yazısında, dosya içerisinde arama yapmak için 'osman' in open('file.txt').read() kalıbını kullanmıştım:

Python da nasıl dosya okunur, dosyaya nasıl yazılır, içinde kelime araması nasıl yapılır, kaç kere yer aldığı nasıl bulunur?

Bu x in y kalıbı string yani yazı tipinde olan verilerle uğraşıyorsanız sıklıkla karşılacağınız bir şey, basitçe şu iki şekilde kullanabilirsiniz, mesela "mecnun" kelimesinin hikaye adlı bir string içerisinde olup olmadığına bakacaksınız:

     hikaye = "mecnun ve leylanın hikayesi"

     if "mecnun" in hikaye:
          print("Ay Dede")

     if "mecnun" not in hikaye:
          print("Ac Dede")

Bu iki "if" örneğini tabii ki ayrı ayrı kullanın, eğer "mecnun"suz bir hikaye istiyorsanız "not in" kullanımını da görün istedim sadece. 

Bunun dışında hızlı çözüm olarak find ve index fonksiyonlarını da kullanabilirsiniz:

     soru = "derdalmaya mı geldin abi"

     if soru.find("erdal") == -1:
          print ("bakkal bos")
     else:
          print ("erdal burda")

Görüldüğü gibi "soru" string inin içinde erdal kelimesi geçtiği için, bu işlem "erdal burda"yı döndürecektir. Çünkü bu tür işlemlerde yani "in", "find" ve "index" de yazının varlığı kontrolü kelime varlığı gibi yapılmaz, yazının bir yerinde anlamsız bir kalıp içerisinde bulunmuş olması fonksiyon için bir anlam ifade etmemektedir. Tabii ki aradığınız kelimenin iki yanına birer boşluk koyarak arama yaparsanız, o kelimenin yalnız halindeki halini aramış olursunuz. Ancak bu da iyi bir çözüm değil kelime, sonda başta ya da ek sahibi olabilir. Bu sebeple böyle durumlarda ya başka fonksiyonlar kullanmalı ya da bu fonksiyonları ihtimaller için ayrı ayrı if else ler koyarak kullanmalısınız.

BENZER 7

Kimse etkileşime girmemiş

ETİKETLER