python, nybörjare behöver lite hjälp med ett enkelt mellanslag

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Okt 2003

python, nybörjare behöver lite hjälp med ett enkelt mellanslag

Hej, jag försöker skriva ett enkelt program men har fastnat på något löjligt enkelt. Det är när följande program frågar användaren efter några tal som jag inte får python att få in ett mellanslag efter varje fråga.

Så här blir det:

Ange tal 10
Ange tal 21
Ange tal 32

när programmet frågar efter tal 1,2 och 3.
Jag vill så klart att det ska stå

Ange tal 1: 0
Ange tal 2: 1
Ange tal 3: 2

men får inte till det! Har provat olika sätt, men alla ger olika fel. Någon som har förslag?

koden:

#Skriv ett program som frågar användaren hur många tal som ska matas in. #Därefter frågar programmet efter så många tal och #skriver slutligen ut summan av positiva talen, #d.v.s summan av alla tal som är större än 0. # ##Hur många tal vill du mata in? 6 ##Ange tal 1: 3 ##Ange tal 2: 4 ##Ange tal 3: -6 ##Ange tal 4: 30 ##Ange tal 5: 0 ##Ange tal 6: 9 ##Summan av de positiva talen blir 46. #Fråga efter antal tal, spara som int antalTal = int(input("Hur många tal ska matas in? ")) varv = 0 angivnaTal = [] #fyll listan angivnaTal med de tal som matas in while varv < antalTal: varv = varv + 1 print("Ange tal " , end="") angivnaTal.append(int(input(varv))) positivaTal = [] summa = 0 #fyll listan positivaTal med de positiva talen for i in angivnaTal: if i > 0: positivaTal.append(i) #summera de positiva talen for i in positivaTal: summa += i print("Summan av de positiva talen är:" , summa)

[Asus maximus VII ranger] - [Intel 4690k @ 4,6 GHz] - [Samsung 850 pro 512 GB] - [Samsung 1TB] - [Kingston HyperX Beast 2133 MHz 2x8GB] - [Palit GTX 1080] - [Corsair HX 750W] - [Noctua NH-D15] - [Fractal Design XL R2] - [Acer XB270HU]

Trädvy Permalänk
Medlem
Registrerad
Maj 2015

En variant är att göra på följande sätt:

Byt:
print("Ange tal " , end="")
angivnaTal.append(int(input(varv)))

Till:
print("Ange tal " + str(varv) + ": ", end="")
angivnaTal.append(int(input()))

Då ligger allt som användaren ska se i "printen". Variabeln "varv" konverteras till string för att kunna printas och + tecknet kan man använda när man vill printa flera osammanhängande strängar eller variabler i samma print.

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Okt 2003
Skrivet av Roosenn:

Byt:
print("Ange tal " , end="")
angivnaTal.append(int(input(varv)))

Till:
print("Ange tal " + str(varv) + ": ", end="")
angivnaTal.append(int(input()))

Då ligger allt som användaren ska se i "printen". Variabeln "varv" konverteras till string för att kunna printas och + tecknet kan man använda när man vill printa flera osammanhängande strängar eller variabler i samma print.

Det fungerar som en dröm! Jag trodde att man kunde skriva (varv) direkt, det var där det sket sig för mig. Tack för hjälpen!

[Asus maximus VII ranger] - [Intel 4690k @ 4,6 GHz] - [Samsung 850 pro 512 GB] - [Samsung 1TB] - [Kingston HyperX Beast 2133 MHz 2x8GB] - [Palit GTX 1080] - [Corsair HX 750W] - [Noctua NH-D15] - [Fractal Design XL R2] - [Acer XB270HU]