Tutorial introductorio de Python | Declaraciones de control de flujo de Python

Tres estructuras de control de flujo de programas

1. Estructura secuencial

La computadora ejecuta el programa paso a paso de arriba a abajo.
inserte la descripción de la imagen aquí

2. Seleccionar estructura (control condicional)

Una declaración condicional de Python es un bloque de código que está determinado por el resultado de la ejecución (Verdadero o Falso) de una o más declaraciones.

Puede comprender simplemente el proceso de ejecución de la declaración condicional a través de la siguiente figura: ​Proceso de ejecución
del códigoinserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí

si declaración

La forma general de una 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 "condición_1" es Verdadera, se ejecutará la declaración de bloque "statement_block_1"
  • Si "condición_1" es falsa, se juzgará "condición_2".
  • Si "condition_2" es True, se ejecutará la instrucción del bloque "statement_block_2".
  • Si "condición_2" es Falsa, se ejecutará la declaración de bloque "statement_block_3"

En Python, se usa elif en lugar de else if, por lo que las palabras clave de la declaración if son: if – elif – else.

Nota :

  • 1. Dos puntos: deben usarse después de cada condición, lo que indica que el siguiente es el bloque de instrucciones que se ejecutará después de que se cumpla la condición.
  • 2. Utilice sangría para dividir bloques de declaraciones, y las declaraciones con el mismo número de sangría forman juntas un bloque de declaraciones.
  • 3. No hay una declaración switch...case en Python, pero match...case se agrega en la versión Python3.10 y la función es similar; consulte los detalles a continuación.

Demostración Gif:
inserte la descripción de la imagen aquí
Ejemplo El
siguiente es un ejemplo simple:

var1 = 100
if var1:
    print ("1 - if 表达式条件为 true")
    print (var1)
 
var2 = 0
if var2:
    print ("2 - if 表达式条件为 true")
    print (var2)
print ("Good bye!")

Ejecute el código anterior, el resultado es:

1 - si la condición de expresión es verdadera
100
¡Adiós!

Del resultado, podemos ver que debido a que la variable var2 es 0, la instrucción if correspondiente no se ejecuta.

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

age = int(input("请输入你家狗狗的年龄: "))
print("")
if age <= 0:
    print("你是在逗我吧!")
elif age == 1:
    print("相当于 14 岁的人。")
elif age == 2:
    print("相当于 22 岁的人。")
elif age > 2:
    human = 22 + (age -2)*5
    print("对应人类年龄: ", human)
 
### 退出提示
input("点击 enter 键退出")

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

C:\Users\Lenovo>cd Desktop

C:\Users\Lenovo\Desktop>python dog.py
请输入你家狗狗的年龄: 6

对应人类年龄:  42
点击 enter 键退出

Los siguientes son operadores de operación de uso común en if:

operador describir
< menos que
<= Menos que o igual a
> más que el
>= Mayor qué o igual a
== es igual, compara si dos valores son iguales
!= no igual a
# 程序演示了 == 操作符
# 使用数字
print(5 == 6)
# 使用变量
x = 5
y = 8
print(x == y)

El resultado del ejemplo anterior:

Falso
Falso

El archivo high_low.py muestra operaciones de comparación de números:

# 该实例演示了数字猜谜游戏
number = 7
guess = -1
print("数字猜谜游戏!")
while guess != number:
    guess = int(input("请输入你猜的数字:"))
 
    if guess == number:
        print("恭喜,你猜对了!")
    elif guess < number:
        print("猜的数字小了...")
    elif guess > number:
        print("猜的数字大了...")

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

C:\Users\Lenovo\Desktop>python high_low.pyJuego
de adivinanzas
numéricas Ingrese el número que adivinó: 2
El número adivinado es pequeño...
Ingrese el número que adivinó: 3
El número adivinado es pequeño...
Ingrese tu número adivinado: 9
El número adivinado es demasiado grande...
Por favor ingresa el número que adivinaste: 7 ¡
Felicitaciones, lo adivinaste bien!

anidado si

En declaraciones if anidadas, 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 de modo de secuencia de comandos

num=int(input("输入一个数字:"))
if num%2==0:
    if num%3==0:
        print ("你输入的数字可以整除 2 和 3")
    else:
        print ("你输入的数字可以整除 2,但不能整除 3")
else:
    if num%3==0:
        print ("你输入的数字可以整除 3,但不能整除 2")
    else:
        print  ("你输入的数字不能整除 2 和 3")

Guarde el programa anterior en el archivo test_if.py y el resultado después de la ejecución es:

C:\Users\Lenovo\Desktop>python test.py
Ingrese un número: 5
El número que ingresó no se puede dividir entre 2 y 3

partido… caso

Python 3.10 agrega el juicio condicional de coincidencia... caso, no es necesario usar una serie de if-else para juzgar.

El objeto después de la coincidencia se comparará con el contenido después del caso por turno. Si la coincidencia es exitosa, se ejecutará la expresión coincidente; de ​​lo contrario, se omitirá directamente. _ puede coincidir con todo.

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 a default : en C y Java , cuando no se pueden hacer coincidir otros casos , haga coincidir este y se garantiza que la coincidencia siempre será exitosa.

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"

mystatus=400
print(http_error(400))

Lo anterior es un ejemplo de cómo generar el código de estado HTTP y el resultado de salida es:

Solicitud incorrecta

Un caso también puede establecer múltiples condiciones coincidentes, las condiciones están separadas por |, por ejemplo:

...
    case 401|403|404:
        return "Not allowed"

3. Estructura de bucle

Las declaraciones de bucle en Python son for y while.

El diagrama de estructura de control de la declaración de bucle de Python es el siguiente:
inserte la descripción de la imagen aquí

mientras bucle

La forma general de la declaración while en Python:

while 判断条件(condition):
    执行语句(statements)……

El diagrama de flujo de ejecución es el siguiente:

如果条件为true
继续判断
如果条件为false
开始
判断条件
执行代码块
结束

Ejecutando la demostración Gif:
inserte la descripción de la imagen aquí
tenga en cuenta también los dos puntos y la sangría. Además, no existe un bucle do... while en Python.

El siguiente ejemplo utiliza while para calcular la suma del 1 al 100:

n = 100
sum = 0
counter = 1
while counter <= n:
    sum = sum + counter
    counter += 1
 
print("1 到 %d 之和为: %d" % (n,sum))

Los resultados de la ejecución son los siguientes:

La suma de 1 a 100 es: 5050

Bucle infinito
Podemos lograr un bucle infinito configurando la expresión condicional para que nunca sea falsa, el ejemplo es el siguiente:

#!/usr/bin/python3
 
var = 1
while var == 1 :  # 表达式永远为 true
   num = int(input("输入一个数字  :"))
   print ("你输入的数字是: ", num)
 
print ("Good bye!")

Ejecute el script anterior, el resultado es el siguiente:

Ingrese un número: 5El
número que ingresó es: 5Ingrese
un número:

Puede usar C TRL+C para salir del bucle infinito actual.

Los bucles infinitos son útiles para solicitudes de clientes en tiempo real en el servidor.

bucle while usando la declaración else

Si la declaración condicional después de while es falsa, ejecute el bloque de declaración de else.

El formato de sintaxis es el siguiente:

while <expr>:
    <statement(s)>
else:
    <additional_statement(s)>

Las declaraciones del bloque de declaraciones se ejecutan si la declaración condicional de expr es verdadera, y las declaraciones_adicionales se ejecutan si es falsa.

Repita los números y juzgue el tamaño:

count = 0
while count < 5:
   print (count, " 小于 5")
   count = count + 1
else:
   print (count, " 大于或等于 5")

Ejecute el script anterior, el resultado es el siguiente:

0 menor que 5
1 menor que 5
2 menor que 5
3 menor que 5
4 menor que 5
5 mayor o igual a 5

grupo de declaraciones simples

De manera similar a la sintaxis de la declaración if, si solo hay una declaración en el cuerpo del bucle while, puede escribir la declaración en la misma línea que el while, de la siguiente manera:

flag = 1
while (flag): print ('欢迎访问泰山的技术博客!')
print ("Good bye!")

Nota : Puede usar CTRL+C para interrumpir el bucle infinito anterior.

Ejecute el script anterior, el resultado es el siguiente:

¡Bienvenido al blog de tecnología de Tarzán!
¡Bienvenido al blog de tecnología de Tarzán
! ¡Bienvenido al blog de tecnología de Tarzán!
¡Bienvenido al blog de tecnología de Tarzán!
¡Bienvenido al blog de tecnología de Tarzán!
 …

para declaración de bucle

Un bucle for de Python puede iterar sobre cualquier objeto iterable, como una lista o una cadena.

El formato general de un bucle for es el siguiente:

for <variable> in <sequence>:
    <statements>
else:
    <statements>

diagrama de flujo:

下一个元素
继续
循环完所有元素
开始
集合中的元素
代码块
结束

Ejemplo de bucle for de Python:

sites = ["Baidu", "Google","Tarzan","Taobao"]
for site in sites:
    print(site)

El resultado de la ejecución del código anterior es:

Baidu
Google
Tarzán
Taobao

También se puede utilizar para imprimir cada carácter de una cadena:

word = 'Tarzan'
 
for letter in word:
    print(letter)

El resultado de la ejecución del código anterior es:

tarzan
_
_
_
_
_

Los valores de rango entero se pueden usar con la función range():

#  1 到 5 的所有数字:
for number in range(1, 6):
    print(number)

El resultado de la ejecución del código anterior es:

1
2
3
4
5

para...si no

En Python, la declaración for...else se utiliza para ejecutar un fragmento de código una vez finalizado el ciclo.

El formato de sintaxis es el siguiente:

for item in iterable:
    # 循环主体
else:
    # 循环结束后执行的代码

Cuando se ejecuta el bucle (es decir, se atraviesan todos los elementos del iterable), se ejecutará el código de la cláusula else. Si se encuentra una declaración de interrupción durante el bucle, el bucle se interrumpirá y la cláusula else no ser ejecutado en este momento.

for x in range(6):
  print(x)
else:
  print("Finally finished!")

执行脚本后,输出结果为:

0
1
2
3
4
5
6
Finally finished!

以下 for 实例中使用了 break 语句,break 语句用于跳出当前循环体,不会执行 else 子句:

sites = ["Baidu", "Google","Tarzan","Taobao"]
for site in sites:
    if site == "Tarzan":
        print("泰山博客!")
        break
    print("循环数据 " + site)
else:
    print("没有循环数据!")
print("完成循环!")

执行脚本后,在循环到 "Tarzan"时会跳出循环体:

循环数据 Baidu
循环数据 Google
泰山博客!
完成循环!

range() 函数

Python3 range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表。
Python3 list() 函数是对象迭代器,可以把 range() 返回的可迭代对象转为一个列表,返回的变量类型为列表。

函数语法

range(stop)
range(start, stop[, step])

参数说明:

  • start: 计数从 start 开始。默认是从 0 开始。例如 range(5) 等价于 range(0, 5)
  • stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是 [0, 1, 2, 3, 4] 没有 5
  • step:步长,默认为 1。例如:range(0, 5) 等价于 range(0, 5, 1)

如果你需要遍历数字序列,可以使用内置 range() 函数。它会生成数列,例如:

>>>for i in range(5):
...     print(i)
...
0
1
2
3
4

也可以使 range() 以指定数字开始并指定不同的增量(甚至可以是负数,有时这也叫做’步长’):

>>> for i in range(0, 10, 3):
...  print(i)
...
0
3
6
9

注意: print(i) 要缩进空格。
负数:

>>> for i in range(-10, -100, -30):
...  print(i)
...
-10
-40
-70
>>>

您可以结合 range() 和 len() 函数以遍历一个序列的索引,如下所示:

>>> a = ['Google', 'Baidu', 'Tarzan', 'Taobao', 'QQ']
>>> for i in range(len(a)):
...  print(i,a[i])
...
0 Google
1 Baidu
2 Tarzan
3 Taobao
4 QQ
>>>

还可以使用 range() 函数来创建一个列表:

>>>list(range(5))
[0, 1, 2, 3, 4]
>>>

break 和 continue 语句及循环中的 else 子句

break 执行流程图:
inserte la descripción de la imagen aquí
continue 执行流程图:
inserte la descripción de la imagen aquí
while 语句代码执行过程:
inserte la descripción de la imagen aquí
for 语句代码执行过程:
inserte la descripción de la imagen aquí
break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。

continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环。

实例
while 中使用 break:

n = 0
while n < 5:
    n += 1
    if n == 3:
        break
    print(n)

输出结果为:

1
2

while 中使用 continue:

n = 0
while n < 5:
    n += 1
    if n == 3:
        continue
    print(n)

输出结果为:

1
2
4
5

更多实例如下:

for letter in 'Tarzan':     # 第一个实例
   if letter == 'z':
      break
   print ('当前字母为 :', letter)
  
var = 10                    # 第二个实例
while var > 0:              
   print ('当前变量值为 :', var)
   var = var -1
   if var == 5:
      break

执行以上脚本输出结果为:

当前字母为 : T
当前字母为 : a
当前字母为 : r
当前变量值为 : 10
当前变量值为 : 9
当前变量值为 : 8
当前变量值为 : 7
当前变量值为 : 6

以下实例循环字符串 Tarzan,碰到字母 z 跳过输出:

for letter in 'Tarzan':     # 第一个实例
   if letter == 'z':        # 字母为 o 时跳过输出
      continue
   print ('当前字母 :', letter)
 
var = 5                    # 第二个实例
while var > 0:              
   var = var -1
   if var == 3:             # 变量为 3 时跳过输出
      continue
   print ('当前变量值 :', var)

执行以上脚本输出结果为:

当前字母 : T
当前字母 : a
当前字母 : r
当前字母 : a
当前字母 : n
当前变量值 : 4
当前变量值 : 2
当前变量值 : 1
当前变量值 : 0

Una declaración de bucle puede tener una cláusula else, que se ejecuta cuando la lista se agota (en un bucle for) o la condición se vuelve falsa (en un bucle while), lo que provoca que el bucle termine, pero no cuando el bucle termina por una interrupción. .

El siguiente ejemplo se utiliza para consultar el ejemplo del ciclo de un número primo:

for n in range(2, 10):
    for x in range(2, n):
        if n % x == 0:
            print(n, '等于', x, '*', n//x)
            break
    else:
        # 循环中没有找到元素
        print(n, ' 是质数')

El resultado de ejecutar el script anterior es:

2 es un número primo
3 es un número primo
4 es igual a 2 * 2
5 es un número primo
6 es igual a 2 * 3
7 es un número primo
8 es igual a 2 * 4
9 es igual a 3 * 3

pasar declaración

El paso de Python es una declaración vacía para mantener la integridad de la estructura del programa.

pass no hace nada, generalmente se usa como una declaración de marcador de posición, como se muestra en el siguiente ejemplo

>>>while True:
...     pass  # 等待键盘中断 (Ctrl+C)

Clase mínima:

>>>class MyEmptyClass:
...     pass

El siguiente ejemplo ejecuta el bloque de declaración de paso cuando la letra es o:

for letter in 'Tarzan': 
   if letter == 'z':
      pass
      print ('执行 pass 块')
   print ('当前字母 :', letter)

El resultado de ejecutar el script anterior es:

Letra actual: TLetra actual
: aLetra actual
:
rEjecutar bloqueo de paseLetra actual
: zLetra
actual:
aLetra actual: n

Supongo que te gusta

Origin blog.csdn.net/weixin_40986713/article/details/132683868
Recomendado
Clasificación