String deki belli karakterler dışındaki karakterleri silme

Merhaba, bir string deki belirli karakterler dışındaki karakterleri nasıl silebilirim ? Sadece şu karakterler kalsın istiyorum: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, +, -, *, /, %.

aşağıdaki basit kod işine yarayabilir.

karakterler = "0123456789+-*/%"
girdi = input("metin yazın: ")
sonuc = ""

for karakter in girdi:
    if karakter in karakterler:
        sonuc += karakter

print(sonuc)

ya da bir fonksiyon oluşturup istediğin iterable değeri foksiyona göndererek çıktı (print) ya da değer (return) alabilirsin. Örnek fonksiyon:

karakterler = "0123456789+-*/%"
metnin_ilk_hali = "qwertyuıop159asdfghjklşi7532684zxcvbnmöç./*->£#$½¾{[]}%+"


def temizle(metin):
    metnin_son_hali = ""    
    for karakter in metin:
        if karakter in karakterler:
            metnin_son_hali += karakter
    print(metnin_son_hali) # ya da return metnin_son_hali

temizle(metnin_ilk_hali)
4 Beğeni

Teşekkürler işe yaradı.

1 Beğeni

Eğer daha kısa ve RegEx kullanarak daha profosyonel gözükmek istersen, o zaman aşağıdaki kodu da kullanabilrsin.

import re

metnin_ilk_hali = "qwertyuıop159asdfghjklşi7532684zxcvbnmöç./*->£#$½¾{[]}%+"

print(re.sub("[^0-9(+*/%)\\-]", "", metnin_ilk_hali))  # 1597532684/*-%+
2 Beğeni
from operator import contains
from functools import partial

karakterler = "0123456789+-*/%"
metnin_ilk_hali = "qwertyuıop159asdfghjklşi7532684zxcvbnmöç./*->£#$½¾{[]}%+"

print("".join(filter(partial(contains, karakterler), metnin_ilk_hali)))
3 Beğeni

Rica ederim, faydalı oldu ise ne âlâ.
diğer arkadaşların cevapları sayesinde yeni şeyler öğreniyoruz, sağ olsunlar.

1 Beğeni

Aynen, farklı yöntemleri de öğrenmiş olduk.