Saya mencoba mengambil input dan output dengan huruf besar dan kecil bergantian.

Contoh, jika saya mengetik The quick brown fox jumps over the lazy dog huruf O pada fox dan dog tidak ditampilkan seperti yang saya inginkan. Hal yang sama terjadi dengan vokal ganda juga seperti "baik" atau "bit" dll. Apakah ada cara untuk membuat kode menyertakan kemunculan setelah yang pertama? Saya juga belum belajar enumerate atau modul seperti itu, saya mencoba membuatnya bekerja dengan apa yang telah saya pelajari sejauh ini. Terima kasih.

text = input('Enter a sentence: ')

def sponge(t):
    new = ''
    for i in t:
        if int(t.index(i)) % 2 == 0:
            new += i.lower()
        else:
            new += i.upper()
    return new

print(sponge(text))
0
Seej 21 Januari 2020, 08:51

2 jawaban

Jawaban Terbaik

Masalahnya adalah fungsi t.index(i) mengembalikan indeks kemunculan pertama i. Dengan apa yang Anda ketahui, cukup tambahkan variabel penghitung:

text = input('Enter a sentence: ')

def sponge(t):
    new = ''
    counter = 0
    for i in t:
        if counter % 2 == 0:
            new += i.lower()
        else:
            new += i.upper()
        counter += 1
    return new

print(sponge(text))
0
Marcin Orlowski 21 Januari 2020, 06:02

Coba seperti ini:

text = input('Enter a sentence: ')

def sponge(t):
    new = ''
    for i in range(len(t)):
        if i % 2 == 0:
            new += t[i].lower()
        else:
            new += t[i].upper()
    return new

print(sponge(text))

Saya kira masalah dalam kode Anda adalah ketika Anda menggunakan .index untuk menemukan indeks karakter, ia selalu mengembalikan yang pertama ditemukan.

0
Ramesh Reddy 21 Januari 2020, 05:55