Yazıyı bölme (Strip hakkında bir soru)

Selamlar

strip() fonksiyonu hakkında bir sorum olacak.

Bu satır —AHMET— AHMET’İN YAPTIKLARI HAKKINDA
Bu satır —MEHMET— MEHMET’İN YAPTIKLARI HAKKINDA
Bu satır —SELİM— SELİM’İN YAPTIKLARI HAKKINDA

Şeklinde stringlerim olduğunu varsayalım. Başta ki “Bu satır” kelimelerini silmek için

strip("\Bu satır ")

kodunu kullanıyorum. Ama — arasındaki kelimeye ihtiyacım var. — arasından kelimeyi nasıl çıkartabilirim?

Teşekkürler

Ahmet mehmet selim bunlarimi almak istiyorsun

Evet onlar almak istiyorum

Yazbel belgelerinde find rfind index rindex konulari var. İlk - nin indexi sonra diger - nin index numaralarini bulup karakter dilimleme islemi yapabilirsin.
[ilk-nin indexi+1:son-indexsi]
telden yaziyorum kod ornegi veremedim

Cevap vermek için vermesek, yanlış yönlendirme yapmazsak daha iyi olur diye düşünüyorum. Hem insanlar zaman kaybetmez hem de gerçekten yardımcı olabilecekler aa buna zaten bir cevap verilmiş deyip konuyu atlamaz!

Problemin çözümü re.split

import re
yazi="---AHMET--- AHMET’İN YAPTIKLARI HAKKINDA"
degisken=((re.split(r'\s',yazi))[0]).strip("---")
print(degisken)

Yanlis yonlendirme degil:

foo = "Bu satır —AHMET— AHMET’İN YAPTIKLARI HAKKINDA"
d1 = foo.find("—")
d2 = foo.find("—", d1+1)
print(foo[d1+1:d2])

Bu cevap daha yanlis, cunku iki arasindaki kelimeden ziyade ilk kelimeyi aliyor. Hatta sorudaki string’ler ile calismiyor:

import re
yazi="Bu satır —AHMET— AHMET’İN YAPTIKLARI HAKKINDA"
degisken=((re.split(r'\s',yazi))[0]).strip("---")
print(degisken)
Bu

Problemin tek bir cozumu yok; re.split kullanan bir versiyonu soyle:

import re
yazi="Bu satır —AHMET— AHMET’İN YAPTIKLARI HAKKINDA"
degisken=re.split('—',yazi)[1]
print(degisken)

Bu satır -AHMET-AHMETİN YAPTIKLARI HAKKINDA ki metin nasil olmusta —AHMET—AHMETİN YAPTIKLARI HAKKINDAYA dondu.

Boşverin ahmet’i mehmet’i size bir fıkra anlatayım.

Fıkradan önce;

Yanlış soru örneği: Aradaki kelimeye ihtiyacım var. Aradaki kelimeyi nasıl çıkartabilirim (?!)

Hani Türkçem süper değildir ama, çıkartma ve ihtiyaç duymak bir arada? Çıkarttığımız genelde atarız, aradakini almak istiyorum derdim şahsen. Neyse.

Güzel soru.: Örnekte ikişer Ahmet, ikişer Mehmet, ikişer Selim olunca hangisi olduğunu belirginleştirmek gerekiyor değil mi?

Şimdi fıkramızı anlatalım.

Gelinin biri evlenmiş, ata binmiş damatla gidiyor.

At giderken taşa takılmış, Damat dönmüş ata...

Bu birrrr demiş...

Devam etmişler tekrar aynı şey, at taşa takılmış...

Damat ata dönmüş;

Bu ikiiii demiş...

Az daha ilerlediklerinde  at tekrar bir taşa takılmış.


Dönmüş çekmiş atı kafasından vurmuş...

Tabi gelin de atla beraber, yere yuvarlanmış.

O anın şokuyla, damat delimisin  ne yapıyorsun sen diye bağırmış...


Damat sakin sakin geline dönmüş;

Gelin, bu biiirr....

Şimdi bu fıkrayı neden mi anlattım?

Bu biiirrrr:

Bu ikiiiiii:

Güzel yaklaşım.

Mesela strip konusunda zorlamasaydık konuyu,

Deseydik ki, elimizde bir string var ve ben bu string içindeki belirli karakterler arasındaki bir stringi nasıl alırım.

Örnek:

—AHMET—

Kolayca alternatif çözümler üretilirdi.

Mesela şunu bile önerebilirdik.

import re

s = '---MEHMET--- AHMET’İN YAPTIKLARI HAKKINDA'
result = re.search('---(.*)---', s)
print(result.group(1))

re modülü ile aradığınız bir kelime grubunu alabilirsiniz derdik ama gerek yok.

Böyle olunca ya 3. de vurmanız gerekecek, yada benim yaptığım gibi soranı pass geçebilirsiniz.

2 Beğeni