Seite 1 von 1

Print Formatierungen

Verfasst: Sonntag 11. Mai 2014, 09:43
von duodiscus
Guten Morgen zusammen,
ich habe vor mithilfe von print und for Schleifen eine Dreiecks Form mithilfe von X zu erstellen. Das Dreieck soll bei Eingabe von True als Steuerung die Dreiecksbasis oben haben und bei False genau umgekehrt. Beides soll rechtsbündig (!) ausgegeben werden. Und da liegt mein Problem. Ich hab alles eigentlich fertiggestellt, allerdings gibt er mir das Dreieck eher zentriert aus statt rechtsbündig! Könnt Ihr mir da helfen?

Code: Alles auswählen

def Dreieck_Ausgabe(n, Steuerung):
    if Steuerung == True:
        for i in range(n+1):
            print('%*s' %(n, i*'X'))
    elif Steuerung == False:
        for c in range(n+1):
            print('%*s' %(n, (n-c)*'X'))


## So soll es aussehen wenn es richtig ist!!!:

>>> Dreieck_Ausgabe(10, False)
XXXXXXXXXX
 XXXXXXXXX
  XXXXXXXX
   XXXXXXX
    XXXXXX
     XXXXX
      XXXX
       XXX
        XX
         X
          
>>> Dreieck_Ausgabe(10, True)
          
         X
        XX
       XXX
      XXXX
     XXXXX
    XXXXXX
   XXXXXXX
  XXXXXXXX
 XXXXXXXXX
XXXXXXXXXX

Re: Print Formatierungen

Verfasst: Sonntag 11. Mai 2014, 09:52
von Sirius3
@duodiscus: kann es sein, dass Du eine proportionale Schrift benutzt und deshalb Leerzeichen schmaler sind als 'X'?

Code: Alles auswählen

def Dreieck_Ausgabe(n, top_down=True):
    numbers = range(n+1)
    if not top_down:
        numbers = reversed(numbers)
    for i in numbers:
        print('%*s' %(n, i*'X'))

Re: Print Formatierungen

Verfasst: Sonntag 11. Mai 2014, 10:49
von duodiscus
@Sirius3: Was ist eine proportionale Schrift? ^^

Deine Lösung sieht bei mir genau so aus wie meine bisherige:
Bild
http://pl.vc/2dm3y

Also formatiert schlicht die Shell das falsch durch eine andere Schriftart oder wie ?

Re: Print Formatierungen

Verfasst: Sonntag 11. Mai 2014, 11:48
von Sirius3
Für Shells und auch Editoren sollten deshalb immer Schriften verwendet werden, bei denen jedes Zeichen die gleiche Breite hat. Bei Deinem Bild siehst zu zum Beispiel, dass das 'l' in False viel weniger Platz braucht, als das 's' oder 'e'.

Re: Print Formatierungen

Verfasst: Sonntag 11. Mai 2014, 14:36
von duodiscus
Habe die Schriften mal durchgetauscht. Hat keinen Unterschied gemacht...

Re: Print Formatierungen

Verfasst: Sonntag 11. Mai 2014, 14:46
von BlackJack
@duodiscus: Doch das macht einen Unterschied!

Re: Print Formatierungen

Verfasst: Sonntag 11. Mai 2014, 14:53
von Sirius3
@duodiscus: Hast Du alle Schriften durchprobiert? Standardeinstellung ist normalerweise immer eine Monospace-Schrift, Du mußt also irgendwann aktiv die Schrift verändert haben.

Re: Print Formatierungen

Verfasst: Sonntag 11. Mai 2014, 14:54
von duodiscus
Was wäre denn eine Monospace Schriftart? Kann die ja in den Shell Einstellungen ändern.

Re: Print Formatierungen

Verfasst: Sonntag 11. Mai 2014, 15:10
von BlackJack
@duodiscus: Courier und Andale Mono beispielsweise.

Re: Print Formatierungen

Verfasst: Sonntag 11. Mai 2014, 15:38
von duodiscus
Okay. Das war dann wohl der Fehler!