7 svar
350 visningar
Dcbest01 behöver inte mer hjälp
Dcbest01 66
Postad: 26 sep 2019 21:02

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 2696
Postad: 26 sep 2019 23:13 Redigerad: 26 sep 2019 23:16

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 Online 30711
Postad: 27 sep 2019 04:28

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

Dcbest01 66
Postad: 27 sep 2019 09:53

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 66
Postad: 27 sep 2019 15:38

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 Online 30711
Postad: 27 sep 2019 17:34
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 Online 30711
Postad: 27 sep 2019 17:35
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 2696
Postad: 27 sep 2019 17:38 Redigerad: 27 sep 2019 17:39

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
Close