Python strip metodu işaret ayıklama

Mehaba :slightly_smiling_face:

şöyle pir program yazdım:

isaret="!.,;:?'"
 

giris=input("Bişeyler yaz ")

for i in giris:
    if i in isaret:
        giris=giris.strip(i)

print(giris)

Burada metindeki işaretleri ayıklamasını amaçladım

Bişeyler yaz 123!
123

.

Bişeyler yaz 123!!
123

Buraya kadar çalışıyor fakat:

Bişeyler yaz 123!?
123!

Burası neden olmuyor
Ve nasıl düzeltebilirim
lütfen yardım edin

:face_with_raised_eyebrow:

Bu durumda sadece sonda bulunan karakter dizisi silinmiş çünkü strip metodu zaten bu şekilde çalışıyor.
Mesela:

print("helloworld!?".strip("!"))

kodundan alacağınız çıktı helloworld!? olacaktır. Ünlem silinmedi çünkü karakter dizisinin sonunda bulunmuyor. Ünlem yerine soru işaretini silmeyi denerseniz soru işareti sonda olduğu için başarılı bir şekilde silinecektir. Yani anlayacağınız üzere strip metodundan bir şeyler silmesini bekliyorsanız önce silinmesini istediğiniz şeyin sonda olması gerektiğine dikkat etmeniz gerekiyor.


Şuanda nerede yanlışlık olduğunu öğrenmiş oldunuz. Bence şimdi bir kez daha kendiniz yapmaya çalışın. Bu sefer yapabileceğinizi düşünüyorum.
Yine olmazsa forumdan yardım alabilirsiniz tabii ki :slight_smile:

1 Beğeni

Bende yeni başladım geçen hafta karakter dizilerinde buna benzer bir çözüm vardı işini görür mü umarım.

yazi= input("Bir Şeyler Yaz: ")

isaret="!.,;:?'"

yeni_yazi = str.maketrans('', '', isaret)

print("Bunumu demek istediniz :"+ yazi.translate(yeni_yazi))
1 Beğeni

Çok teşekkür ederim :grinning:

1 Beğeni