koddla

Yazılımcıları bilgi ile güçlendirir.

Python’da dizeyi küçük harfe dönüştürme

Kullanıcı tarafından girilen dizenin tamamını yada bir kısmını büyük harften küçük harfe dönüştürmenin bir yolu var mı? Örneğin aşağıdaki dönüşümü nasıl yapabiliriz:

Kilometre –> kilometre

Bakalım. Bunu yapmanın en Pythonik yolu:

>>> 'Kilometre'.lower()
'kilometre'

Python’da büyük/küçük harf eşleştirme nasıl yapılır?

Ancak, amaç büyük/küçük harf duyarsız eşleştirme yapmaksa, casfold kullanmalısınız:

İşte nedeni:

>>> "Maße".casefold()
'masse'
>>> "Maße".lower()
'maße'
>>> "MASSE" == "Maße"
False
>>> "MASSE".lower() == "Maße".lower()
False
>>> "MASSE".casefold() == "Maße".casefold()
True

Bu fonksiyon Python 3’te bir str fonksiyonu. Python 2 için PyICU veya py2casefold’a bakmak isteyebilirsiniz. 

Unicode Python 3

Python 3 düz dize değişmezlerini unicode olarak işler:

>>> string = 'Километр'
>>> string
'Километр'
>>> string.lower()
'километр'

Python 2, düz dize değişmez değerleri bayttır

Python 2 ise düz dize değişkenlerini bayt olarak işler. lower baytları değiştirmediği için aynı dizeyi geri alırız.

>>> string = 'Километр'
>>> string
'\xd0\x9a\xd0\xb8\xd0\xbb\xd0\xbe\xd0\xbc\xd0\xb5\xd1\x82\xd1\x80'
>>> string.lower()
'\xd0\x9a\xd0\xb8\xd0\xbb\xd0\xbe\xd0\xbc\xd0\xb5\xd1\x82\xd1\x80'
>>> print string.lower()
Километр

Değişmez değerler yerine Unicode değerleri kullanın

Dolayısıyla bize bir unicode dizesi gerekiyor (bu önekin Python 3’te de çalıştığını unutmayın):

>>> unicode_literal = u'Километр'
>>> print(unicode_literal.lower())
километр

Büyük harfi küçük harfe dönüştürme – küçük harfi büyük harfe dönüştürme

Verilen dizede büyük-küçük harf dönüşümü için swapcase kullanabilirsiniz:

s1='ABCD'
print(s1.swapcase())

s2='abcd'
print(s2.swapcase())

s3='aBcD'
print(s3.swapcase())

çıktı:

abcd
ABCD
AbCd

Bir yanıt yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Back to top