Som vi sa i föregående inlägg av detta curso Python-programmering med Linux, När vi behöver att ett program ska köras kontinuerligt kan vi använda loopar. Dessa upprepar kodexekveringen så länge ett eller flera villkor är uppfyllda.
Vi hade lämnat den föregående artikeln som förklarade användbarheten av instruktionerna. bryta y fortsätter.
Python-programmeringskurs med Linux
Låt oss ta en närmare titt på vad den här koden gör:
intentos = 0
Skapa variabeln "attempts" för att hålla reda på hur många giltiga inloggningar användaren gjorde. Sätt dess värde till 0.
while intentos = 5
Den anger att loopen måste exekveras 5 gånger om den inte stöter på break-instruktionen.
distro = input(f"Intento {intentos + 1}/5 - Escribí una distro: ")
Den uppmanar användaren att ange namnet på en distribution och tilldelar den variabeln `distro`. För att undvika att förvirra användaren visar den vad räknaren skulle visa som försök 0 som försök 1.
if distro == ""
Kontrollera om användaren tryckte på Enter utan att skriva något.
print("No escribiste nada, no cuenta como intento.")
Den meddelar användaren att de inte har skrivit något
continue
Starta om loopen utan att lägga till några försök.
intentos += 1
Om användaren skrev något läggs ett försök till räknaren.
if distro == "Ubuntu"
Kontrollera om användaren skrev "Ubuntu"
print(f"¡Correcto! Adivinaste en {intentos} intento(s).")
Ange om svaret är rätt och hur många försök som krävdes.
break
Eftersom användaren hade rätt stoppas loopen.
else:
Eftersom villkoret om färre än 5 försök inte längre är uppfyllt gäller alternativet.
print("¡Se acabaron los intentos! Era Ubuntu.")
Meddelandet skrivs ut att försöken har löpt ut och att distributionen var Ubuntu.
For-slingan
While-loopen är användbar när vi vill att ett program ska upprepas tills ett visst villkor är uppfyllt. Om vi vill exekvera en loop, till exempel genom att visa alla element i en lista, och den listan har ett variabelt antal element, kommer instruktionen att vara mer användbar. för.
Syntaksen är som följer:
for variable in secuencia
For-loopen fungerar med en sekvens som kan vara en lista, en textsträng eller ett numeriskt område. och den passerar den i sin helhet och exekverar samma kodblock för varje element i sekvensen.
Detta är ett exempel:
Ha sönder
Instruktionen bryta stoppar loopkörningen innan slutet av sekvensen nås.
distribuciones = ["Ubuntu", "Debian", "Linux Mint", "Arch Linux", "Fedora"]
Skapa en lista över distributioner
distro_a_buscar = "Debian"
Det står att Debian-distributionen kommer att efterfrågas.
for distro in distribuciones
Den tilldelar sekventiellt varje element i listan till distrovariabeln.
print("Buscando...")
Visar sökmeddelandet i början av varje försök.
if distro == distro_a_buscar
Kontrollera om du hittade distributionen du sökte efter.
print("Distribución encontrada:", distro)
Den ger meddelandet att den sökta distributionen hittades och skriver ut namnet.
break
Stoppa loopen.
print("Fin de la búsqueda.")
Den visar meddelandet om att sökningen är klar, vilket den också skulle göra även om den sökta distributionen inte hittades.
Fortsätta
Instruktionen `continue` fungerar på liknande sätt som `while`-loopen. När Python stöter på den hoppar den till nästa element i listan och ignorerar den återstående koden. Detta är användbart när det aktuella elementet inte uppfyller ett villkor, men vi ändå vill att loopen ska fortsätta att köras.
Här är ett exempel:
distros = ["Ubuntu", "Debian", "arch linux", "Fedora", "Linux Mint"]
Skapa en lista med 5 Linuxdistributioner. Den gemena bokstaven "arch linux" är avsiktligt.
for distro in distros
Iterera igenom varje element i listan och tilldela det i tur och ordning till variabeln distro.
if distro[0].islower():
Kontrollera att den första bokstaven i fördelningen är versal.
print(f»'{distro}' börjar inte med stor bokstav,»)
Den meddelar användaren att distributionen inte uppfyller villkoret att börja med versaler och att den kommer att fortsätta med nästa:
fortsätta
Eftersom villkoret inte är uppfyllt går den vidare till nästa element i loopen.
print(f"* {distro}")
Skriv ut de fördelningar som uppfyller villkoret att börja med stor bokstav.
Mätområde
Funktionen range används tillsammans med for-loopen för att generera nummersekvenser.
range(inicio, fin, paso)
Var:
- Home: Nummer där sekvensen börjar. Standard är 0
- end: Det är numret där sekvensen slutar utan att inkludera detta värde.
- Han passerade: Det är intervallet mellan varje tal i sekvensen. Som standard är det 1.
Anta att vi har denna instruktion:
for i in range(4):
Eftersom den som standard börjar från 0 och använder intervallet 1, gäller följande instruktion:
print(i)
Den kommer att skriva ut siffrorna från 0 till 3.
Medan om vi definierar loopen:
for i in range(4, 10):
print(i)
Den kommer att visa alla siffror från 4 till 9
Medan loopen:
for i in range(3, 21, 3):
Genom att göra:
print(i)
Det kommer att visa
3
6
9
12
15
18
Vi kan också generera talföljden i fallande ordning:
for i in range(21, 3,- 3):
Det är möjligt att använda `range` för att räkna upp elementen i en lista. Det skulle se ut ungefär så här:
Låt oss titta på programmet i detalj
distros = ["Ubuntu", "Debian", "Fedora"]
Skapa en lista med tre fördelningar.
len(distros)
Bestäm antalet objekt i listan.
range(len(distros))
Den anger antalet objekt i listan som den övre gränsen för intervallet.
for i in range(len(distros)):
Börja gå igenom vart och ett av punkterna på listan.
print(f"{i} - {distros[i]}")
Skriver ut indexet och listobjektet.
Detta kan dock göras enklare med:
for i, distro in enumerate(distros)
I nästa artikel fortsätter vi med funktionerna i Python.