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