Obrni Besedilo

Obrni Besedilo

Avtor: Petra Velikanje

Besedilo naloge

Napiši program, ki prebere vrstico z nekaj besedami, ki so ločene z enim ali več presledki in besede izpiše v obratnem vrstnem redu. Primer: Prijatlji! Obrodile so trte vince nam sladko naj program prepiše v sladko nam vince trte so obrodile prijatlji!

Opis problema in ideja rešitve

Ideja rešitve je napisati program, ki iz podane datoteke prebere vsebino in jo obrne. Obrniti pa jo mora tako, da ne zamenja samo črk ampak besede, ki so napisane v datoteki.

Razlaga algoritma

Napisala sem funkcijo obrni, ki za parameter dobi ime datoteke. Najprej sem prebrala vsebino iz datoteke in jo shranila v niz. Nato sem s sla skozi niz s pomočjo for zanke, pri tem izluščila besede iz enkratnih ali večkratnih presledkov. Na koncu pa sem obrnila vrstni red s pomočjo while zanke.

Koda funkcije obrni

def obrni(imeDatoteke):
    '''Funkcija obrni()nam obrne vrstni red besed stavka, ki ga napišemo v txt datoteko.'''
    locila=[',','.','!','?']
    niz1=''
    niz2=''
    sez1=[]
    sez=[]
    sez2=[]
    with open (imeDatoteke,'r') as f:#Najprej iz datoteke preberemo stavek. Stavek je zapisan v obliki niza.
        a=f.readline()
    for j in a:#Nato gremo skozi niz. Pri tem niz razdelimo na podnize, ki so sestavljeni iz besed in presledkov.
        if j.isalpha()==True or j in locila:#Nize nato dodajemo na konec seznama sez1.Dobimo seznam praznih nizov in polnih nizov(besede).
            niz1+=j
        else:
            niz2+=j
            sez1.append(niz1)
            niz1=''
    for k in sez1:#V senam sez dodajamo amo polne sezname. Tako dobimo stavek v seznamu sez napisan tako, da je vsaka beseda v svojem nizu.
        if k!='':
            sez.append(k)
        else:pass
    b=len(sez)-1
    while b>=0:#nazadnje pa še obrnemo vrstni red besed. To naredimo tako, da gremo po seznamu od zadaj naprej in pri tem nize besed
                #dajemo na konec seznama sez2
        sez2.append(sez[b])
        b-=1
    for i in sez2:
        print(i,end=' ')

Testiranje programa

0%
0%