Metindeki rakamları silib ve metnin baş harflerini büyük yazamıyorum

Metin=“Selam dunya5”,“hoş bulduk0”
Metn=metin.split()
Print(metn)

3 satırlık kodda 3 tane hata var. Yanıtlamaya değer mi ayrı.
Metn=metin.split() metin değişkeni nereden gelecek.
Print(metn) P harfi neden büyük. metn değişkeni nerden gelecek.
ilk satırdaki değişken bir tuple döndürüyor.

Bu yazbel belgelerinden aklıma kalan hep şu olmuştur “Elinizeki verinin tipini bilmelisiniz ki ona göre işlem yapmalısınız.” Fırat Özgül hocama saygılar bu arada.

Ben sizden çözüm istedim.Yanlış yaptiğimi bende biliyorum)

Merhaba;

03 - String İşlemleri - EGİTİM BİLGİLERİ (google.com)

title() metodu
Karakter dizisi içinde geçen her bir kelimenin ilk harfini büyütür.

İlk karakteri büyük harf yapmak için kullanabilirsiniz.

Sayıları çıkarmak için ise bir kaç farklı yaklaşım kullanabilirsiniz.

String Verilerde Karakter Değiştirme
#Replace Metodu Yardımıyla 2 ya da 3 parametre belirleyerek karakter değiştirebilir veya silebiliriz. Aşağıdaki örnekte "a" harfini gördüğü anda kodumuz "i" harfine dönüştürecektir:
kelime = u"Kahramanmaraş"
print kelime.replace("a","i")

1 i “” ile değiştir.
2’yi “” ile değiştir.

gibi değiştirebilirsiniz.

split metodundaki hatanız da şu:

split() metodu parantez içerisinde nereden böleceği ile ilgili bir parametre/değişken ister. Buraya siz bir değer vermezseniz varsa boşluklardan ayıracak ve sizin durumda bu işe yaramayacaktır.

split() Metodu:
    Bir String verinin içerisindeki karakterleri soldan sağa doğru okuyarak belirlediğimiz bir karakter kriterine String veriyi bölüp liste haline getirmeye yarar.
    office = "Word, Excel, PowerPoint, Access"
    print office.split(",")

mesela sizin örnekte;

Metn=Metin.split("5")

Bu durumda 5 e kadar stringi alacaktır. Ama kodunuz hala çalışmayacaktır.

Neden?

Metin=“Selam dunya5”,“hoş bulduk0”

Burada iki string ayrı ayrı ve biz buna tuple diyoruz.

Yani Metin adında bir tuple tanımlayıp iki string atadık.

Peki ikinci satırda, hangi tuple elemanına split uyguladık?

Metin=“Selam dunya5,hoş bulduk0”

Yukarıdaki tırnak sayısına dikka edin şimdi.

Bu durumd bir tuple den farklı bir yapıdır.

Yani tuple mı liste mi , string mi kullandığınızı ve neden kullandığınızı açıklamanız gerekecek.

Dahası kod yine çalışmayacak.

Metn=metin.split()
Print(metn)

Şimdi bu kısımda, Metn ve metn aynı değişkenler değildir farklı değişkenler kabul edilir.

Yani üç satır kodun üçünde de temel bilgi eksikliğiniz var.

Öncelikle python değişken tiplerini, liste, tuple nedir gibi temel konuları öğrenmeniz, sonrasında liste işlemleri nelerdir nasıl yapılır öğrenmeniz gerekiyor.

Siz tuple’ın birinci ve ikinci elemanına ayrı ayrı erişip split etmek isterseniz ayrı ayrı;

Metin[0].split("5")
Metin[1].split("0")

Gibi tek tek erişip bölmeniz gerekebilir.

Yani kodda bir hata yok, birden fazla hata var ve gösterdiğiniz örnek üzerinde düzeltmek için birden fazla ihtimal ve ne yaptığınızı anlamamış gerekir.

Temel konularda eksiğiniz varken tamamını burada uzun uzadıya anlatarak çözmek için herkesin vakti olmayacaktır.

Temel konuları kendiniz öğrenip takıldığınız noktalarda sorarsanız daha kolay çözümler ve cevaplar üretilebilir.

Neden bu soruya ihtiyaç duydunuz?

split metodunu mu öğrenmek istiyorsunuz, yada sonunda bir karakteri kırp diyere çözeceğimiz bir basit sorununuz mu var bilemiyoruz.

Yani neyi öğrenmeniz gerekip ne ihtiyacınız olduğu çok önemli.

Python String Metotları (sadikturan.com)

Gibi kaynaklardaki örnekleri adım adım takip edip kavramayı çalışın.

Ben sizin tırnakları yanlışlıkla koyup liste yerine tuple mı kullanmaya çalıştığınızı ayıramam.

Sağdan bir karakter silmeyi mi öğrenmeye çalıştığınızı, yada sağdan karakterlerin sayı mı harf mi ayırmayı mı öğrenmeye çalıştığınızı da ayıramam.

Çünkü hangi konuyu öğrenmeyi hedeflediğinize göre farklı çözüm metodları var.

Bizim yerimize koyun kendinizi hepi topu üç satır kod.

Birinci satırda, liste mi tuple mı kullanmayı amaçladığınızı anlayamıyoruz.

İkinci satırda Metn adında bir değişkene split metodunu parametresiz ne yaptırmaya çalıştığınızı anlamıyoruz.

Üçüncü satırda metn diye tanımlanmamış bir değişkeni neden yazdırmaya çalıştığınızı anlamıyoruz.

Size liste işlemleri mi, tuple işlemleri mi string işlemleri mi lazım bilemedim.

Bu kod düzeltilir çalıştırılır sorun değil.

Mesela;

Metin=“Selam dunya5 , hoş bulduk0”
Metn=''.join([i for i in Metin if not i.isdigit()])
print(Metn)

Buradaki yaklaşım, şu stringleri kontrol et, isdigit ile sayı mı diye bak, sayı ise stringe ekleme sayı değilse stringe ekle.

Buna da kaynak vereyim:

python - Removing numbers from string - Stack Overflow

Şimdi burada rakamları çıkardık.

Sonuna da .title metodunu ekleyelim bu şekilde ilk harflerini de büyümüş oluruz.

Metin=“selam dunya5 , hoş bulduk0, Semtex9”
remove_numbers=''.join([i for i in Metin if not i.isdigit()])
Metn= remove_numbers.title()
print(Metn)

Bu yukarıdaki örnek;
Başlıktan anladığım, metindeki rakamları “silip” ve metnin baş harflerini büyük yazmak için örnek.

Ama nacizane tavsiyem. Önce temel konuları öğrenin. Sonra sorularınızı sorun. Soru çok basit ve temel olduğundan kimse böyle basit konularla uğraşmak istemez.

Bunu şöyle düşünün, burada edebi metinleri yorumlamak isteyen insan topluluğuna alfabe sormak gibi oluyor. Kimse de dönüp dönüp alfabesini anlatmakla uğraşmaz.

Yani daha pyhton değişkenlerinin tanımlanmasında büyük küçük harf duyarlılığını bilmeyen birine önce alfabeyi öğretip oradan paragraf yada romanı yorumlamasını beklerseniz hem soran olarak siz hem de cevaplayan olarak bizi yorarsınız.

Bu kadar yazmamın sebebi bu.

Çözüm istemek kolay çözüm gelir, mesele siz bunu nasıl istiyorsunuz karşı taraftan.

Kolay gelsin.

1 Beğeni

Tesekkurler.Amma sizin verdiyiniz kodun bir kismi işe yaradi.Digerlerin ben yazdim.Bide ben orda yanlis yaza bilirim.Amma kod yazarken neyi nerde yazacağimi biliyorum…Sadece ben orada join aklima gelmedi Siz yardimci oldunuz teşekkurler bir daha😊