Python3 Control de condiciones

Las declaraciones condicionales de Python determinan el bloque de código a ejecutar mediante el resultado de ejecución (True o False) de una o más declaraciones.

Puede comprender fácilmente el proceso de ejecución de las declaraciones condicionales mediante la siguiente figura:

Proceso de ejecución del código:

Palabras clave de juicio de condiciones

Palabra clave / Función Descripción Ejemplo
if Declaración de juicio de condición, ejecuta el bloque de código cuando la condición es True if x > 0:
elif Rama de juicio de múltiples condiciones (else if) elif x == 0:
else Se ejecuta cuando no se cumplen todas las condiciones else:
pass Declaración vacía, utilizada como marcador de posición para garantizar una sintaxis completa if x > 0: pass
match Coincidencia de patrones estructurales (Python 3.10+, similar a switch) match x: case 1: ...

Declaración if

La forma general de la declaración if en Python es la siguiente:

if condition_1: statement_block_1 elif condition_2: statement_block_2 else: statement_block_3
  • Si "condition_1" es True, se ejecutará el bloque de declaraciones "statement_block_1"
  • Si "condition_1" es False, se evaluará "condition_2"
  • Si "condition_2" es True, se ejecutará el bloque de declaraciones "statement_block_2"
  • Si "condition_2" es False, se ejecutará el bloque de declaraciones "statement_block_3"

En Python se utilizaelifen lugar deelse if, por lo que las palabras clave de la declaración if son:if – elif – else。

Nota:

  • 1. Después de cada condición se debe usar dos puntos:, indicando que a continuación está el bloque de declaraciones a ejecutar cuando se cumpla la condición.
  • 2. Utilice la indentación para dividir bloques de declaraciones; las declaraciones con el mismo número de indentación forman juntas un bloque.
  • 3. En Python no hayswitch...casedeclaración, pero en la versión Python 3.10 se añadiómatch...case, y es similar en funcionalidad, consulte a continuación.

Demostración en Gif:

Ejemplo

El siguiente es un ejemplo simple de if:

Ejemplo

#!/usr/bin/python3 var1 = 100 if var1: print ("1 - La condición de la expresión if es true") print (var1) var2 = 0 if var2: print ("2 - La condición de la expresión if es true") print (var2) print ("Good bye!")

Ejecute el código anterior, el resultado es:

1 - if 表达式条件为 true
100
Good bye!

Del resultado se puede ver que, como la variable var2 es 0, la declaración dentro del if correspondiente no se ejecutó.

El siguiente ejemplo demuestra el cálculo y juicio de la edad de un perro:

Ejemplo

#!/usr/bin/python3 age = int(input("Por favor, ingrese la edad de su perro:")) print("") if age <= 0: print("¡Me estás tomando el pelo!") elif age == 1: print("Equivale a una persona de 14 años.") elif age == 2: print("Equivale a una persona de 22 años.") elif age > 2: human = 22 + (age -2)*5 print("Edad humana correspondiente:", human) ### Mensaje de salida input("Pulse la tecla enter para salir")

Guarde el script anterior en el archivo dog.py y ejecútelo:

$ python3 dog.py 
请输入你家狗狗的年龄: 1

相当于 14 岁的人。
点击 enter 键退出

A continuación se muestran los operadores de operación comúnmente utilizados en if:

Operador Descripción
< Menor que
<= Menor o igual que
> Mayor que
>= Mayor o igual que
== Igual a, compara si dos valores son iguales
!= No igual a

Ejemplo

#!/usr/bin/python3 # El programa demuestra el operador == # Usando números print(5 == 6) # Usando variables x = 5 y = 8 print(x == y)

El resultado del ejemplo anterior:

False
False

El archivo high_low.py demuestra la comparación de números:

Ejemplo

#!/usr/bin/python3 # Este ejemplo demuestra el juego de adivinar números number = 7 guess = -1 print("¡Juego de adivinar números!") while guess != number: guess = int(input("Por favor, ingrese el número que adivina:")) if guess == number: print("¡Felicitaciones, adivinaste!") elif guess < number: print("El número adivinado es demasiado pequeño...") elif guess > number: print("El número adivinado es demasiado grande...")

Ejecute el script anterior, el resultado del ejemplo es el siguiente:

$ python3 high_low.py 
数字猜谜游戏!
请输入你猜的数字:1
猜的数字小了...
请输入你猜的数字:9
猜的数字大了...
请输入你猜的数字:7
恭喜,你猜对了!

Anidamiento if

En declaraciones if anidadas, se puede colocar una estructura if...elif...else dentro de otra estructura if...elif...else.

if 表达式1:
    语句
    if 表达式2:
        语句
    elif 表达式3:
        语句
    else:
        语句
elif 表达式4:
    语句
else:
    语句

Ejemplo

# !/usr/bin/python3 num=int(input("Ingrese un número:")) if num%2==0: if num%3==0: print ("El número que ingresó es divisible por 2 y 3") else: print ("El número que ingresó es divisible por 2, pero no por 3") else: if num%3==0: print ("El número que ingresó es divisible por 3, pero no por 2") else: print ("El número que ingresó no es divisible por 2 ni por 3")

Guarde el programa anterior en el archivo test_if.py, ejecútelo y el resultado es:

$ python3 test.py 
输入一个数字:6
你输入的数字可以整除 2 和 3

match...case

Python 3.10 añadió match...casela evaluación de condiciones, ya no es necesario usar una serie deif-elsepara juzgar.

El objeto después de match se compara secuencialmente con el contenido después de case; si la coincidencia es exitosa, se ejecuta la expresión coincidente; de lo contrario, se omite directamente._Puede coincidir con todo.

SVG: Diagrama de flujo de ejecución de match...case Cuadro de subject match subject Flecha hacia abajo case <pattern_1> ? Coincide action_1 No coincide case <pattern_2> ? Coincide action_2 No coincide case <pattern_3> ? Coincide action_3 No coincide case _ (comodín) Siempre coincide wildcard

El formato de sintaxis es el siguiente:

match subject:
    case <pattern_1>:
        <action_1>
    case <pattern_2>:
        <action_2>
    case <pattern_3>:
        <action_3>
    case _:
        <action_wildcard>

case _:Similar al de C y Javadefault:, cuando otros case no puedan coincidir, coincide con este, asegurando que siempre coincidirá.

Ejemplo

def http_error(status):
    match status:
        case 400:
            return "Bad request"
        case 404:
            return "Not found"
        case 418:
            return "I'm a teapot"
        case _:
            return "Something's wrong with the internet"
 
print(http_error(400))
print(http_error(404))
print(http_error(418))
print(http_error(500))

El anterior es un ejemplo que genera códigos de estado HTTP; el resultado para varios códigos de estado es:

Bad request
Not found
I'm a teapot
Something's wrong with the internet

Un case también puede establecer múltiples condiciones de coincidencia; las condiciones se separan con|separadas por, por ejemplo:

...
    case 401|403|404:
        return "Not allowed"
SVG: | Ilustración de coincidencia de múltiples condiciones status 401 403 404 | Símbolo | | Convergencia de tres líneas Cuadro de resultado "Not allowed"

Ejemplo

def check_permission(status):
    match status:
        case 200:
            return "OK - Solicitud exitosa"
        case 301 | 302:
            return "Redirect - Redirección"
        case 401 | 403 | 404:
            return "Not allowed - Sin permisos o no encontrado"
        case 500 | 502 | 503:
            return "Server Error - Error del servidor"
        case _:
            return "Unknown status - Código de estado desconocido"
 
for code in [200, 301, 403, 500, 418]:
    print(f"Código de estado {code}: {check_permission(code)}")

match...caseConsulte más contenido en:Declaración match-case de Python

Otras extensiones