
H¿Cómo y cuándo utilizo bucles for en el lengua de programación Python? ¿Cómo puedo usar las declaraciones break y continue para alterar el flujo de un caracolillo de Python?
Detalles del tutorial | |
---|---|
Dificultad | Viable (rss) |
Privilegios de root | No |
Requisitos | Pitón |
Hora | 10m |
Un caracolillo for es una comunicación de Python que repite un orden de declaraciones un número específico de veces. Puede usar cualquier objeto (como cadenas, matrices, listas, tuplas, dict, etc.) en un caracolillo for en Python. Esta página explica los conceptos básicos del caracolillo for de Python al incluir declaraciones break y continue.
Python para sintaxis de caracolillo
La sintaxis básica es:
for var in list: statement-1 statement-2 statement-N
Dónde,
- var : var lee cada sujeto de la serie comenzando desde el primer sujeto.
- serie : list es una serie de Python, es opinar, una serie o una prisión.
Ejemplos y uso en Python
El ulterior ejemplo ilustra el uso de la instrucción for en Python. Cree un archivo llamado for-loop.py:
#!/usr/bin/python # # for-loop.py: Sample for loop to print welcome message 3 times # for i in '123': print("Welcome",i,"times")
Guarde y vallado el archivo. Ejecútelo de la ulterior forma:$ chmod +x for-loop.py
$ ./for-loop.py
O$ python for-loop.py
Esto es lo que vemos:
Welcome 1 times Welcome 2 times Welcome 3 times
El ejemplo precursor se puede escribir usando el caracolillo while de la ulterior forma:
#/usr/bin/python i=1 while i <= 3: print("Hello World,",i," times.") i += 1
Futuro modificadas:
Hello World, 1 times. Hello World, 2 times. Hello World, 3 times.
Anopther Python 3 para un ejemplo de caracolillo que imprime los nombres comunes de las distribuciones de Linux:
#!/usr/bin/python3 distros = ["RHEL", "Fedora", "Debian", "Ubuntu", "Arch", "Alpine"] for d in distros: print("Linux distro name: " + d)
Cuando se ejecute veremos:
Linux distro name: RHEL Linux distro name: Fedora Linux distro name: Debian Linux distro name: Ubuntu Linux distro name: Arch Linux distro name: Alpine
Ejemplo de caracolillo for anidado
El ulterior código muestra el caracolillo for anidado clásico con Python:
#!/usr/bin/python # Python 2.x version # Nested for loop example ### Outer for loop ### for x in xrange(1,5 ): ### Inner for loop ### for y in xrange(1, 5): print '%d ' % (x), print
Interpretación de Python 3.x:
#!/usr/bin/python3 # Nested for loop example ### Outer for loop ### for x in range(1,5 ): ### Inner for loop ### for y in range(1, 5): print('%d ' % (x), end = '') print("")
Figura 01: Python anidado para la salida del software de caracolillo
Iterando Python para caracolillo usando la función range ()
En puesto de usar una prisión emplazamiento ‘123’, intente range () para iterar sobre una secuencia de números:
#!/usr/bin/python # Python for loop using range() print("*** Generates a list of 3 values starting from 0 ***") for i in range(3): print("Welcome",i,"times.") print("*** Generates a list of 3 values starting from 1 ***") for i in range(1,4): print("Welcome",i,"times.")
Sesión de muestra:
*** Generates a list of 3 values starting from 0 *** Welcome 0 times. Welcome 1 times. Welcome 2 times. *** Generates a list of 3 values starting from 1 *** Welcome 1 times. Welcome 2 times. Welcome 3 times.
Se recomienda que utilice la función xrange () para guardar memoria en Python 2.x:
#!/usr/bin/python # Only works with Python 2.x # There no xrange() function in Python3 # Python for loop using range() print "*** Generates a list of 3 values starting from 0 using xrange() ***" for i in xrange(3): print "Welcome",i,"times." print "*** range() vs xrange() ***" print "range() creates a list containing numbers all at merienda." print "xrange() creates a list containing numbers as needed."
Ejemplo de serie
El ulterior ejemplo ilustra el uso de la instrucción for usando una serie:
#!/usr/bin/python # Sample for loop using a List ## define a list shuttles = ['columbia', 'endeavour', 'challenger', 'discovery', 'atlantis', 'enterprise', 'pathfinder' ] ## Read shuttles list and store the value of each element into s and display on screen for s in shuttles: print(s)
Futuro:
columbia endeavour challenger discovery atlantis enterprise pathfinder
Para imprimir el índice y su valencia, intente enumerate (). Simplifica los métodos de caracolillo de uso popular. Proporciona a todas las colecciones iterables la misma preeminencia que iteritems () brinda a los diccionarios: una notación de índice compacta, descifrable y confiable:
#!/usr/bin/python # A list of shuttles shuttles = ['columbia', 'endeavour', 'challenger', 'discovery', 'atlantis', 'enterprise', 'pathfinder' ] ## Read shuttles list and enumerate into index and value for index, value in enumerate(shuttles): print(index, value)
Ahora esto es lo que vemos:
0 columbia 1 endeavour 2 challenger 3 discovery 4 atlantis 5 enterprise 6 pathfinder
Ejemplo de tipo de datos de diccionario usando for loop
Los diccionarios están indexados por claves. Puede usar un par de esencia y valencia usando un caracolillo for de Python. El ulterior ejemplo ilustra este concepto:
#!/usr/bin/python # define a dict data type for our dns server as geoLocation : DNS server name dnsservers = {"us":"ns1.cyberciti.com", "uk":"ns2.cyberciti.biz", "asia":"ns3.cyberciti.org" } # Python for loop for key (location),value (nameserver) using dict data type for location in dnsservers: print(dnsservers[location], "dns server is located in", location )
Futuro de muestra:
ns1.cyberciti.com dns server is located in us ns2.cyberciti.biz dns server is located in uk ns3.cyberciti.org dns server is located in asia
El ulterior ejemplo itera a través del tipo de datos del diccionario y solo muestra el resultado si la coincidencia se encuentra a través de Python raw_input / input ():
#!/usr/bin/python ## Dict data type dnsservers = {"us":"ns1.cyberciti.com", "uk":"ns2.cyberciti.biz", "asia":"ns3.cyberciti.org" } ## Is location found ? found = False ## INPUT: Search for a geo location search_ns_location = input("Provide geo location ") #print(search_ns_location) #exit(0) for location in dnsservers: if location == search_ns_location: print(dnsservers[location], "dns server is located in", search_ns_location) found = True ## Display an error if found == False : print(search_ns_location ,"not a valid geo location.")
Sesión:
Provide geo location asia ns3.cyberciti.org dns server is located in asia
Provide geo location nyc nyc not a valid geo location.
Bucles infinitos
Se puede crear un caracolillo for infinito con mientras que es cierto: sintaxis:
#!/usr/bin/python # Use while loop as follows to run from 1 (i=1) to infinity # The following will run infinity times i=1 while True: print("Welcome", i, "times. To stop press [CTRL+C]") i += 1
Puede juntar retraso usando sleep () de la ulterior forma
#!/usr/bin/python #!/usr/bin/python # Use while loop as follows to run from 1 (i=1) to infinity # The following will run infinity times import time i=1 while True: print("Welcome", i, "times. To stop press [CTRL+C]") i += 1 # Delay for 2 seconds time.sleep(2)
Figura 02: Salida de software de caracolillo infinito para
Salida condicional con alivio
Puede hacer una salida anticipada con una comunicación de interrupción en el interior del ciclo for. La sintaxis es:
for condition: if condition is true: break
Ejemplo de salida anticipada:
#!/usr/bin/python #!/usr/bin/python # Use while loop as follows to run from 1 (i=1) to infinity # The following will run infinity times import time i=1 while True: print("Welcome", i, "times. To stop press [CTRL+C]") i += 1 #### Delay for 2 seconds #### time.sleep(2) #### Die (early exit) if i is 5 #### if i == 5: print("Early exit detected...terminating infinity") break
Sesión de muestra:
Welcome 1 times. To stop press [CTRL+C] Welcome 2 times. To stop press [CTRL+C] Welcome 3 times. To stop press [CTRL+C] Welcome 4 times. To stop press [CTRL+C] Early exit detected...terminating infinity
Seguir comunicación
La instrucción continue permite que el código salga de la iteración flagrante. No terminaré su ciclo for de Python. En otras palabras, podemos usar la instrucción continue para silenciar la iteración flagrante cuando se cumple una condición particular:
#/usr/bin/python3 distros = ["RHEL", "Fedora", "Debian", "Ubuntu", "Arch", "Alpine"] # skip for loop when distro name (d) is equal to Debian # for d in distros: if d == "Debian": continue print("Linux distro name: " + d)
demás comunicación
El else se usa cuando desea hacer poco cuando todos los iterables están agotados. Esta es una cláusula opcional. Por ejemplo:
#!/usr/bin/python3 for os in ["macOS", "Linux", "Windows10", "FreeBSD", "Unix"]: print("OS: ", os) else: print('OS loop list completed. Bye!')
Resumiendo
Aprendió sobre Python para la sintaxis de caracolillo y varios ejemplos. Ahora puede ejecutar regularmente un liga de código un número fijo de veces usando el caracolillo for. Consulte la documentación de Python para obtener más información.