String ifadeyi bir büyük harf bir küçük harf olacak şekilde yazdırma

merhabalar, python’a yeni başladım. bir algoritma oluşturmak istedim başaramadım. örneğin:

x = “deniz’in dünyasına hoşgeldiniz” #ben bunu bir büyük harf bir küçük harf olacak şekilde yazdırmak istiyorum ama başaramıyorum. yani çıktı aşağıdaki gibi olsun istiyorum;

“DeNiZ’iN dÜnYaSıNa HoŞgElDiNiZ” #bu çıktıyı görmek istediğim algoritmayı yazamıyorum.

yardımcı olursanız sevinirim …
TEŞEKKÜRLER

Merhaba.

string bir ifadenin herhangi bir harfine indeks numarası ile ulaşabiliriz.
Bu doğrultuda indeks numarasının tek sayı mı yoksa çift sayı mı olduğuna göre, çift olanları upper() methodu ile büyük, tek olanları ise lower() ile küçük harf yapabiliriz.

Elbette string ifadeler indeks numarası kullanılarak harf değişimine izin vermiyorlar. Bu yüzden yeni bir değişken oluşturup, harfleri sırasıyla bu değişkene eklememiz gerekiyor.

Aşağıda bahsini ettiğim çözüm yer alıyor.

def fonksiyon(string):
    result = ""
    length = len(string)
    for index in range(0, length):
        letter = string[index]
        if index % 2 == 0:
            result += letter.upper()
        else:
            result += letter.lower()

    return result

print(fonksiyon("deniz’in dünyasına hoşgeldiniz"))

edit:
Noktalama işaretlerini ve sayıları harf olarak saymayacaksak, şöyle bir çözüm çok daha uygun olacaktır.

letters = list("abcçdefgğhıijklmnoöpqrsştuüvxwyz") + list("abcçdefgğhıijklmnoöpqrsştuüvxwyz".upper())

def fonksiyon(string):
    result = ""
    counter = 0
    for letter in string:
        if letter in letters:
            if counter % 2 == 0:
                result += letter.upper()
            else:
                result += letter.lower()
            counter += 1
        else:
            result += letter

    return result

print(fonksiyon("deniz’in dünyasına hoşgeldiniz"))

Bu çözümde string içerisindeki elemanların harf olup olmamasına göre hareket ettik.

3 Beğeni

çok teşekkür ederim, çok sağolun…

çok teşekkür ederim, çok sağolun…

fonksiyonu anlamam uzun sürdü. tek tek her satırı analiz edince ancak anladım.