Välkommen till linuxportalen.se!

Linuxportalen.se är Sveriges största och aktivaste webbplats för användare av öppen- och fri programvara.

Du besöker Linuxportalen.se som gäst vilket begränsar din möjlighet att använda webbplatsens alla funktioner. Genom att registera dig som medlem får du inte bara möjlighet att söka bland webbplatsens innehåll, skapa nya och delta i befintliga diskussioner, skapa din egen blogg, kommunicera med andra medlemmar genom privata meddelanden och delta i omröstningar. Du får också tillgång till Veckans Kadavro - en seriestrip unikt skapad för Linuxportalen.se!

Registeringen sker snabbt och är helt kostnadsfri - tveka inte, bli medlem idag!

Att skriva ett ord med en ram runt. Hjälp!

Hej!
Läser just nu ormtjusar-guiden på wikin och har så gott som lyckats göra ett program nu som skriver ett ord i en "låda". Men om vi först tittar på koden:

#!/usr/bin/python
# * coding:utf8 *
#Detta programmet skriver ett ord i en ram såhär:
#       +-------+
#       | Nisse |
#       +-------+
#Programmet är uppbyggt i delar. En del som ritar strecken och tar reda på hur bred ramen skall vara
#och en del som skriver ordet i ramen

#Funktion för att rita strecken:
def rita_streck(steg):
        print "+-"      #strecken i början
        while steg > 1:
                print "-"       #rita ett nytt träck för varje bokstav
                steg=steg-1
        print "-+"      #strecken i slutet

#Funktion för att rita själva ramen:
def rita_ram(ord):
        steg=len(ord)           #ge variabeln steg samma värde som antalet bokstäver
        rita_streck(steg)       #skriv ut de övre strecken
        print "| "+ ord+" |"    #skriv ut ordet och sidorna
        rita_streck(steg)       #rita de nedre strecken
ord=raw_input("Skriv ett ord: ")#skriv in ordet
rita_ram(ord)                   #befallning att göra en ram med ordet i

Så ni ser att resultatet blir:

+-
-
-
-
-
-+
| Nisse |
+-
-
-
-
-
-+

Hmm, fel någonstans!
Hur får jag strecken på samma rad??

Alternativ för kommentarvisning

Välj ditt önskade sätt att visa kommentarerna och klicka på "Spara" för att verkställa dina ändringar.

kimjohanssons bild

Har inte koll direkt här, men testa med ett kommatecken:
print "+-",


Kristians bild

Print verkar göra nyrad för varje utskrift. Skapa en "buffer-sträng" som du lägger dina '-' i, sen skriver du ut den på raden före och efter din text.

----------------------------------
where my .emacs is, that's my home

---------------------------------------

Open Source - because writing software doesn't make you a "traitor"

marwals bild

#!/usr/bin/env python
namn="Palle Kuling"
hor = "+" + "-" * (len(namn) +2) + "+"
print hor + "\n| " + namn + " |\n" + hor

hanumizzles bild

Ja, ja, man måste lägga ett komma till slutet av raden för att förhindra '\n' från att utskriva.

--
I hear a million voices
They're screaming through my head
Messages of death that I could understand

 
--
Svenska är inte mitt modersmål. Rätta mina många skrivfel, snälla, oavsett hur små de är.