Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
6
Cevap
263
Tıklama
0
Öne Çıkarma
Bir gelebilir misiniz acemiyim
Y
3 yıl
Teğmen
Konu Sahibi

#girdiğimiz kelimelerin hepsinin harfini büyütüp yazdırmaya çalışıyorum ama olmuyor hatam nerede i dönüşürken sıkıntı veriyor


veri = input("Veri: \t")

for s in veri.split():
if s.startswith("i"):
s = s.replace("i" , "İ" , 1)

print(veri.title())



Eğer girdiğin kelimelerin baş harflerinin tümünü büyük yapmak istiyorsan zaten kullandığın title fonksiyonunu arkada bir işlem yapmadan kullanabilirsin.

veri = "selam as
Yoruma Git
Yorumun Devamı Guest-3B332F97F - 3 yıl +4
Y
3 yıl
Teğmen
Konu Sahibi

up



G
3 yıl
Er

Eğer girdiğin kelimelerin baş harflerinin tümünü büyük yapmak istiyorsan zaten kullandığın title fonksiyonunu arkada bir işlem yapmadan kullanabilirsin.

veri = "selam as a i"
print(veri.title()) -> Selam As A I

Eğer girdiğin kelimelerin tüm harflerinin büyük olmasını istiyorsan da şu şekilde yapabilirsin

veri = "selam as a i"
upper = [x.upper() for x in veri.split()] -> ['SELAM', 'AS', 'A', 'I']


Fakat her iki seneryoda da i I'ya dönüşecek. Bunun sebebi İ'nin Türkçe karakter olması. Bunu nasıl çözeriz, bunun için kendi fonksiyonumuzu yazarız.

def tr_upper(word):
word = re.sub(r"i", "İ", word)
word = re.sub(r"ı", "I", word)
word = re.sub(r"ç", "Ç", word)
word = re.sub(r"ş", "Ş", word)
word = re.sub(r"ü", "Ü", word)
word = re.sub(r"ğ", "Ğ", word)

word = word.upper() # default upper

return word

Şimdi az önceki işlemleri birde bu fonksiyonu kullanarak yapalım.

Girdiğim tüm kelimelerin büyük olmasını istiyorum.

veri = 'selam as a i'
print( [tr_upper(x) for x in veri.split()] ) -> ['SELAM', 'AS', 'A', 'İ']

Girdiğim tüm kelimelerin baş harflerinin büyük olmasını istiyorum.

veri = 'selam as a i'
print( [tr_upper(x[0]) + x[1:] for x in veri.split()] ) -> ['Selam', 'As', 'A', 'İ']





< Bu mesaj bu kişi tarafından değiştirildi Guest-3B332F97F -- 1 Eylül 2022; 11:34:21 >

S
3 yıl
Yüzbaşı

Döngü içinde s adlı bir değişkene atama yapıyorsun, ama o atama direkt veri'ye yansımaz. veri başka s başka. Burada temel python bilginin çok eksik olduğu ortaya çıkıyor.
Diğer soruna gelirsek: python'da stringler için upper() ve lower() fonksiyonları var, ancak bunlar locale ayarlarını dikkate alarak çalışmıyor, bu nedenle 'ı' ve 'İ' harflerinde yanlış sonuç üretiyor. Çözüm aslında çok basit. upper() veya lower() çağırmadan önce bir replace() yapacaksın:

print('çöşğiı'.replace('i','İ').upper())
print('ÇÖŞĞİI'.replace('I','ı').lower())



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
Y
3 yıl
Teğmen
Konu Sahibi

evet s ve veri kısmını fark etmemişim yeni yeni öğreniyorum sağ olun




Bu mesajda bahsedilenler: @seyfi84
Y
6 ay
Teğmen
Konu Sahibi

şu an ann ve cnn modellerini kullanıp ses sınıflandırma projesini yapıyorum ve gelişimim inanılmaz olmuş. asıl alanım elektronik bir de göyyaa



C
6 ay
Binbaşı

Alfabemize özgü harfler için bahsedilen özel durum çözümlerini ekleyip küçükten büyüğe dönüşüm için 32 çıkarsak, hantal fonksiyon kullanmak yerine?
a-A=32 ya...



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.