7 svar
70 visningar
Dcbest01 49
Postad: 26 sep 2019

phyton loop

Uppgiften är att man ska få en kod som skriver

0 1 2 3 4 5 6 7 8 9

    0 1 2 3 4 5 6 7 8

       0 1 2 3 4 5 6 7 

          0 1 2 3 4 5 6

             0 1 2 3 4 5 

osv ner till 0

Problemet är att jag inte har någon anning hur man gör detta:

Min kod som jag har skrivit är:

for i in range(0,10):
for j in range(10,1):
print(j,end=" ")
print()

Men absolut ingenting skrivs ut 

 

           

SeriousCephalopod 1832
Postad: 26 sep 2019 Redigerad: 26 sep 2019

Andra raden är knasig.

range(10,1) är en tom lista.

Uttrycket betyder heltalen som uppfyller olikheten 10i<010 \leq i < 0 men finns inga heltal som är större än 10 och mindre än 0 så är bara en tom lista [].

Tips. Vill du ha ett en sträng av mellanslag säg 5 mellanslag "     " kan du generera genom att multiplicera en sträng med ett heltal

" " * 5 >> "     "

"  "* 11 >> "           "

Laguna 6037
Postad: 27 sep 2019

Om du vill räkna ner med 'range' kan du skriva range(10,1,-1).

Dcbest01 49
Postad: 27 sep 2019

Har kommt så här långt

for i in range(0,10):
for j in range(10-i):
print(" "*i,j,end=" ")
print("")

problemet är ju att jag inte vill ha mellanrum efter varje siffra utan endast i början, men vet ej hur man ska fixa detta

Dcbest01 49
Postad: 27 sep 2019

for i in range(1,10):
for j in range(1,10):
print(i*j," ",end=" ")
print()

Men har problem med att formetera, kan verkligen inte få det rakt.

Laguna 6037
Postad: 27 sep 2019
Dcbest01 skrev:

for i in range(1,10):
for j in range(1,10):
print(i*j," ",end=" ")
print()

Men har problem med att formetera, kan verkligen inte få det rakt.

Det är ett ytterligare problem, men i uppgiften fanns väl bara siffrorna 0-9?

Laguna 6037
Postad: 27 sep 2019
Dcbest01 skrev:

Har kommt så här långt

for i in range(0,10):
for j in range(10-i):
print(" "*i,j,end=" ")
print("")

problemet är ju att jag inte vill ha mellanrum efter varje siffra utan endast i början, men vet ej hur man ska fixa detta

Men det här var rätt snyggt, tycker jag.

SeriousCephalopod 1832
Postad: 27 sep 2019 Redigerad: 27 sep 2019

Ett sätt är att använda "padding", mellanrumsvaddering vilket är att man lägger på mellanslag på en sträng om den inte är bred nog.

"123", "1", "12"

Har olika bredd men med padding på de kortare. Kam vi ge dem samma längd.

"123", "1  ", "12 "

När du skriver ut sådana vadderade strängar har de samma längd och de får samma justering i högerled.

Padding görs enklast med strängformattering. Googla "python string formatting padding"

Svara Avbryt
Close