Nyckelord: array, lista

I följande uppgifter är följande lista given:
values = [2, 5, 4, 5, 1, 8, 9, 10, 20, 8, 2, 5, 19, 17, 15, 13]
A: Skriv ut värdet för ett givet index i en lista
Be användaren om ett heltalsindex från 0 till len(values) - 1. Vid ett negativt index eller ett index som är minst len(values) ska programmet varna och fråga igen. Du kan anta att inmatningen är ett heltal.
Exempel:
- Anger användaren värdet 5 ska programmet skriva ut
Värde: 8. - Anger användaren värdet -2 ska programmet skriva ut "
Ogiltigt värde". - Anger användaren värdet 20 ska programmet skriva ut "
Ogiltigt värde".
B: Skriv ut index för första förekomsten av ett värde i en lista
Skapa ett program som ber användaren om en siffra mellan 0 och 20. Skriv sedan ut indexet på första förekomsten av värdet i listan.
Exempel:
- Anger användaren värdet
4ska programmet skriva ut:Index: 2. - Anger användaren värdet
7ska programmet skriva ut:Värdet kunde inte hittas - Anger användaren 21 ska programmet skriva ut "
Ogiltigt värde"
Ledtråd
- Observera att första indexet på en lista alltid börjar på
0. - Skapa en while-loop som alltid är
Truesom frågar efter ett värde från användaren. Om värdet uppfyller alla kriterium så bryt loopen medbreak. - Funktionen
enumerate()är smidig att använda i en for-loop för att hålla reda på både värdet och indexet i en lista
Svar
Uppgift A
values = [2, 5, 4, 5, 1, 8, 9, 10, 20, 8, 2, 5, 19, 17, 15, 13]
while(True):
index = int(input(f"Ange ett värde mellan 0 och {len(values) - 1}: "))
if index < 0 or index >= len(values):
print("Ogiltigt värde")
else:
# Bryt evighetsloopen
break
print(f"Värde: {values[index]}")
- Med en evighetsloop frågar vi användaren om ett värde. Upprepa till dess att användaren angett ett giltigt värde.
- Vi kan formatera textsträngen som skrivs ut med
f"". Det som skrivs inommåsvingartolkas som en variabel. - Var vaksam på att få med alla index i listan
>=så att du inte missar sista värdet. Tänk på att listan börjar med index 0.
Uppgift B
values = [2, 5, 4, 5, 1, 8, 9, 10, 20, 8, 2, 5, 19, 17, 15, 13]
max_value = 20
while(True):
index = int(input(f"Ange ett värde mellan 0 och {max_value}: "))
if index < 0 or index > max_value:
print("Ogiltigt värde")
else:
# Bryt evighetsloopen
break
found = False
# Enumerate ger indexet (i) samt värdet (val) på varje index.
for i, val in enumerate(values):
if val == index:
found = True
print(f"Index {i}")
break
if not found:
print("Värdet kunde inte hittas")
- Med en evighetsloop frågar vi användaren om ett värde. Upprepa till dess att användaren angett ett giltigt värde.
- Funktionen
enumerate()håller reda på både indexet (i) och värdet (val), vilket gör det smidigt att loopa igenom en lista med en for-loop. - Avbryt en loop med
break.