Python hilfe ich kann nicht?

4 Antworten

for x in reversed(range(1, 6)):
    for y in reversed(range(1, x+1)):
        print(y, end=" ")
    print('\n')

Ausgabe (Python 3.7):

5 4 3 2 1 

4 3 2 1 

3 2 1 

2 1 

1 
print('\n')

Das lässt sich noch vereinfachen:

print()
0

Schon deutlich besser als dasgehirn45, aber range kennt einen weiteren Parameter:

range(5,0,-1)

Andererseits ist die reversed-Variante etwas intuitiver beim Lesen.

1
@KarlRanseierIII

ich würde ja sogar ein range (5,0) vorziehen...aber ne :D

reversed ist für mich wirklich intuitiver als ein Parameter -1

Gruß

0

Ich kann kein Python, aber als genereller code:

for x := 5 to 1 do {
  for y := x to 1 do {
    print( y );
  }
  breakline();
}

geht nicht

0
@der0815schalker

das ist nur allgemeiner Code

wenn du jn python programmeirst musst du natürlich die Pythonspezifischen befehle nutzen

0
@AldoradoXYZ

ich weiß, das war aber das, was ich erwähnt hatte

ich kann kein python, ich ging davon aus, dass du es kannst

0
cols = list(reversed(range(1, 6)))

for y in cols:

  row = list(reversed(range(1, y + 1)))

  for x in row:

    print(f'{x:<3}', end='')

  print()

Wie immer beim Programmieren: zerlege dein Problem in kleinere Unterprobleme, die du schrittweise verstehst und löst.

Etwa:

  • Wie kannst du eine Sequenz von 5 bis 1 runterzählen? Hinweis: range().
  • Wie kannst du das auf einer Zeile bzw. untereinander machen?
  • Wie kannst du das kombinieren?

Was möchtest Du wissen?