palindrom.py — vår examensuppgift!

Här kommer ett ”färdigt” program som söker igenom en fil efter palindrom. Kanske kan du impa på din svenskalärare genom att undersöka förekomsten av palindrom i Strindbergs texter eller så?

#!/usr/bin/python
# palindrom.py, Av Urban Anjar
# Copyleft, all rights reversed
import sys, string
#print data

def is_palindrom(strng):
    return strng == bakofram(strng)

def bakofram(string):
    if string == '':
        return ''
    else:
        length = len(string)
        return string[length] + bakofram(string[0 : length])

### Själva programmet ###
for rad in sys.stdin.readlines():
    for ord in string.split(rad):
        if is_palindrom(ord):
            if len(ord) > 2:
                 print ord

Hur programmet funkar får du klura ut själv. Det innehåller en hel del godsaker som vi inte har gått igenom under kursen, men med Google och länkarna på sista sidan bör du lyckas, men det är ett
värdigt slutprov på kursen!

python-logo

Tänker du verkligen använda programmet, så krävs det nog lite tester och avlusning. Jag misstänker att det inte hanterar palindrom som börjar på en stor bokstav korrekt och inte heller dem som står i slutet av en mening.

Här kör jag programmet på andra kapitlet i Strindbergs Röda rummet:

urban@falcon:~$ cat 02.html | ./palindrom.py
alla
oro
alla
alla
urban@falcon:~$

Faktum är att det återstår lite ”fix” innan programmet ser rumsrent ut också. Sitter just och uppgraderar min dator, så det får kanske vänta till en annan dag.