Behöver lite nybörjarhjälp med programmering i Python.

Permalänk

Behöver lite nybörjarhjälp med programmering i Python.

Tjena!
Jag har en del frågor som jag själv inte har lyckats klura ut och dessa får även olika error i Shell vilket gör det svårt att hänga med.

Min första fråga är om det är någon skillnad på dessa två eftersom att k += 1 står intill kanten på ena men inte på den andra:
k = 0
while k < 5:
print(namn[k], end=" ")
k += 1

-------------

k = 0
while k < 5:
print(namn[k], end=" ")
k += 1

Frågan är då om båda kommer att leda till 5 utskrifter av ordet som finns i listan eller bara en av de.

Nästa fråga är om denna också kommer att skriva 5 utskrifter från listan, får nämligen error när jag ska utföra den i Shell. Är det kanske för att print(sum) står intill "väggen" (ursäkta mina dåligt beskrivande ord) eller finns det någon annan anledning?

k = 0
sum = ""
while k < 5:
sum += namn[k]
k += 1
print(sum)

Till sist har jag en fråga kring denna. Går nämligen igenom olika rader som ska läsa in 45 ord till listan "ord".
Just denna är lite klurig eftersom att den faktiskt skriver ut 45 sådana men inte nödvändigtvis på rätt sätt. När jag ska utföra den i Shell så blir det så som jag visat precis under exemplet (under ------). Som man då kan se hamnar en variant av "Ge ord:" mellan "lista[0] = input("Ge ord: ")" och "while j < 45:" medan resten hamnar efter raderna. Detta leder till att om man räknar in "Ge ord:" som är mellan dessa + de som produceras efter hela koden så blir det 45 men annars bara 44 om den inte räknas in. Hur ska man tänka här?

j = 1
ord[0] = input("Ge ord: ")
while j < 45:
ord[j] = input("Ge ord: ")
j += 1

-----------------

lista[0] = input("Ge ord: ")
Ge ord:
>>> while j < 45:
ord[j] = input("Ge ord: ")
j += 1

Permalänk
Medlem

Lägg din kod inom [code][/code] så ser vi din indentation, omöjligt att läsa Python-kod annars.

Permalänk

@Tazavoo: Märker att det inte verkar publiceras på samma sätt som jag skrev det. Hur ska jag skriva varje kodsnutt för att få det att se korrekt ut? Tack!

Permalänk
Medlem

@MartinLind: Genom att lägga koden inom [code][/code]-taggar.

[code]
i = 0
while i < 5:
i += 1
[/code]

Permalänk
Medlem

lite osäker på vad du försöker göra med de första frågorna men det känns som följande hade varit bäst för din sista fråga:

minlista = list() # Skapa ett list objekt while len(minlista) < 45: # Kolla om vi lagt till färre än 45 "ord" objekt minlista.append(raw_input('Ge ord: ')) # Lägg in "ord" objekt (antar string) i listan print(minlista) # Printa listan med ord print(len(minlista)) # Printa hur många ord objekt/strängar som finns i listan

Om du vill ha hjälp med resterande föreslår jag att du editerar in lite kod taggar

Permalänk
Medlem

Förut satt att du menar så här

namn = ["1","2","3","4","5"] k = 0 while k < 5: # sålänge k mindre än 5 kör lopen print(namn[k], end=" ") # en printsats som skriver ut vad som finns på possition k i listan samt ett mellan rum. k += 1 # öka k med 1 så att k tillslut blir 5 det som skrivs ut blir: 1 2 3 4 5

# denna är samma som ovan fast blir en oändlig loop därför att k ökas först efter loopen # så första gången loopen körs är k = 0 efter print satsen kommer loopen köras igen men k kommer fortfarande var 0 k = 0 while k < 5: print(namn[k], end=" ") k += 1 # svaret på din fråga är alltså nej.

namn = ["1","2","3","4","5"] k = 0 sum = "" # tom sträng while k < 5: sum += namn[k] # konkatenerar sum med vad som finns i namn possition k (str och int kan inte konkateneras...) k += 1 # ökar k med 1 kör loopen igen print(sum) # efter att loopen körts färdig dvs k = 5 kommer sum skrivas ut det som i detta fallet skrivs ut är: 12345