Hej,
Jag antydde två olika varianter så jag tänkte att jag ska visa på båda. Först börjar jag dock med att fundera på vad manualen säger om print. Jag fokuserar på de tre första parametrarna som är relevanta i detta fallet.
print(*objects, sep=' ', end='\n')
Den första parametern objects är en eller flera värden som man vill skriva ut
Den andra parametern sep är separator mellan data och är bara relevant om man har flera värden vid varje utskrift
Den tredje parametern är radslut och som du ser så är default värdet \n, dvs radbrytning om man inte anger annat
Då vi i ditt exempel bara skriver ut ett värde i taget så är sep parametern meningslös. (Det finns även en lösning där man skriver ut listor och då denna används, men jag tror det är för tidigt i kursen.)
Däremot kan vi ha nytta av att ändra end till en tom sträng så här:
- Kod: Markera allt
for i in range(10):
number = random.randint(1, 10)
print(str(number), end="")
Men då får vi alla siffror i en kompakt ström. Detta kan lösas på två sätt:
- Kod: Markera allt
# variant 1
for i in range(10):
number = random.randint(1, 10)
print(str(number)+ str(","), end="")
# variant 2
for i in range(10):
number = random.randint(1, 10)
print(str(number), end=",")
Eller om man vill använda min andra idé att göra utskriften utanför loopen. Du har förvisso en variabel number men den innehåller bara ett tal, inte hela din utskrift. Så du måste ha ytterligare en variabel som blir det som sedan skrivs ut. Så här t.ex.
- Kod: Markera allt
alldata = ""
for i in range(10):
number = random.randint(1, 10)
alldata = alldata + str(number) + str(", ")
print(alldata)
Samtliga varianter här har sina fördelar och nackdelar. Men oftast är det bäst att välja den som är mest lättläst för då ser man fel mycket lättare. Vilken variant föredrar du?
Mvh,
Johan - fellow student