notas de estudio de python (cuatro) -control de proceso

¿Cuál es el propósito de aprender el proceso de control? El flujo de control puede realizar una lógica de código muy compleja, puede realizar funciones más inteligentes

Declaraciones condicionales

Las declaraciones condicionales de Python son básicamente las mismas que en otros lenguajes, y el bloque de código que se ejecutará está determinado por el resultado de la ejecución (Verdadero o Falso) de una o más declaraciones.

El lenguaje de programación Python especifica cualquier valor distinto de cero y no nulo como Verdadero y 0 o nulo como Falso.

Forma básica de declaración if

En Python, la forma básica de una declaración if es la siguiente:

if 判断条件:
    执行语句……
else:
    执行语句……

El lenguaje Python tiene requisitos estrictos de sangría, por lo que también debe prestar atención a la sangría aquí y no se pierda los dos puntos. :

La condición de juicio de la instrucción if puede expresarse mediante> (mayor que), <(menor que), == (igual a),> = (mayor o igual que) y <= (menor o igual que).
Ejemplo:

results=59
if results>=60:
    print ('及格')
else :
    print ('不及格')
 
 运行结果:
 不及格

Como se mencionó anteriormente, los valores distintos de cero, las cadenas no vacías, las listas no vacías, etc. se juzgan como Verdaderos, de lo contrario es Falso. Entonces también se puede escribir así:

num = 6
if num:
    print('Hello Python')
    
运行结果:
Hello Python

¿Y si lo numcambiamos a una cadena vacía?

if '':
    print('hello python')

Obviamente, una cadena vacía es Falsa, la declaración no cumple las condiciones, no ejecutará el print('Hello Python')código.

Nota: En los dos puntos del código de juicio de condición :, el contenido de la siguiente línea debe tener sangría. Si no aplica sangría, obtendrá un error. Los dos puntos y la sangría son una especie de sintaxis. Ayudará a Python a distinguir los niveles entre códigos y comprender la lógica y la secuencia de ejecución condicional.

La forma de las condiciones de juicio múltiple en la declaración if

A veces, no podemos tener solo dos oraciones de juicio y, a veces, necesitamos más de una. Por ejemplo, en el ejemplo anterior, si el valor es mayor que 60, entonces tenemos que juzgar que el valor mayor que 90 es excelente, y el valor entre 80 y 90 es bueno.

En este momento, se necesitan múltiples condiciones de juicio de la declaración if.

Formato de sintaxis:

if 判断条件1:
    执行语句1……
elif 判断条件2:
    执行语句2……
elif 判断条件3:
    执行语句3……
else:
    执行语句4……

Ejemplos:

results = 89

if results > 90:
    print('优秀')
elif results > 80:
    print('良好')
elif results > 60:
    print ('及格')
else :
    print ('不及格')
运行结果:
良好

Si se juzgan varias condiciones al mismo tiempo

¿Qué debemos hacer cuando a veces nos encontramos con múltiples condiciones?

Por ejemplo, cuando se requiere que las puntuaciones de las pruebas de Java y Python superen los 80 puntos, se considera excelente. ¿Qué debo hacer en este momento?

En este momento podemos combinar ory andutilizar.

o (o) significa que la condición es exitosa cuando una de las dos condiciones es verdadera

y (y) significa que solo cuando se cumplen dos condiciones al mismo tiempo, la condición de juicio es exitosa.

P.ej:

java = 86
python = 68

if java > 80 and  python > 80:
    print('优秀')
else :
    print('不优秀')

if ( java >= 80  and java < 90 )  or ( python >= 80 and python < 90):
    print('良好')
    
输出结果:
不优秀
良好

Nota: Si hay varias condiciones, puede utilizar paréntesis para distinguir el orden de juicio. Los juicios entre paréntesis se ejecutan primero. Además, la prioridad de yyo es menor que los símbolos de juicio como> (mayor que) , <(menor que), es decir, mayor que y Menor que si no hay paréntesis, se juzgará primero que yo.

si está anidado

¿Qué significa si anidar?

Al igual que el significado literal, significa que las declaraciones if se pueden anidar en declaraciones if.

Por ejemplo, el ejemplo mencionado anteriormente también se puede escribir con if nesting.

Ejemplo:

a = 81
b = 20

if a > 80:
    if b > 90:
        print('优秀')
    else:
        print('及格')
else:
    print('差')

输出结果:
及格

Por supuesto, esto es solo para ilustrar que las declaraciones condicionales se pueden anidar. Si este es el requisito, no se recomienda usarlo si se anida de esta manera, porque la cantidad de código es demasiado y la anidación es demasiado, y no es conveniente leer el código.

De forma predeterminada, se ejecutará de arriba a abajo, y todo el escaneo se realizará primero y se ejecutará si no hay ningún error de sintaxis.

Ejemplo de código:

a=int(input('请输入您的身高(cm):'))
if a>=179:
    print('男神身高')
elif a == 178:
	print('标准身高')
elif 160 < a < 178:
	print('中等身高')
else:
	print('身高不可说')

运行示例:
请输入您的身高(cm)181
男神身高

Operación trinocular (azúcar sintáctica)

Azúcar sintáctico: gramática cubierta de azúcar El científico informático británico Peter John Landa, en términos generales, el uso de azúcar sintáctico puede aumentar la legibilidad del programa, reduciendo así la posibilidad de errores en el código del programa.

Formato de sintaxis: 值1 if 判断语句 else 值2
(Explicación: la declaración contiene el valor de ejecución 1 no tiene el valor de ejecución 2)

a = 4
if a > 5:
    print(True)
else:
    print(False)
    
# 三目运算符 
print(True) if a>5 else print(False)
b = True if a > 5 else False

执行结果:
False
False

# 糖->节省代码格式
# 装饰器

declaración de bucle

Los lenguajes de programación generales tienen declaraciones de bucle.
Entonces pregúntese, ¿qué estamos haciendo con el programa?
Debe ser para facilitar nuestro trabajo y optimizar nuestra eficiencia laboral. Las computadoras son diferentes a los seres humanos, las computadoras no temen las dificultades ni se cansan, ni necesitan descansar, pueden hacerlo todo el tiempo. Tienes que saber que las computadoras son mejores para hacer cosas repetitivas. Entonces, en este momento necesitamos usar declaraciones de bucle, las declaraciones de bucle nos permiten ejecutar una declaración o grupo de declaraciones varias veces.

Python proporciona bucle for y bucle while.
Hay otro problema aquí. ¿Qué debo hacer si quiero que se detenga después de ejecutar cien veces?
En este momento, necesita usar algunas declaraciones para controlar el ciclo:

Declaración de control de bucle descripción
descanso Termine el bucle y salte de todo el bucle
Seguir Termine el bucle actual, salte de este bucle y ejecute el siguiente bucle
aprobar pasar es una declaración vacía para mantener la integridad de la estructura del programa

Estas declaraciones de control son para que le digamos al programa cuándo detenerse y cuándo no ejecutar el ciclo.

mientras que bucle

La función del bucle while es la misma que la del bucle for.

Primero echemos un vistazo a cómo se ve la instrucción de ciclo While.

# 计算1-100 的和。高斯求和
count = 1
sum1 = 0
while count<=100:
    sum1 = sum1+ count
    count = count + 1
print(sum1)

执行结果:
5050

while sintaxis anidada en bucle

while expression:
   while expression:
      statement(s)
   statement(s)

A veces, solo queremos contar la suma de números impares entre 1 y 100. Es decir, cuando la cuenta es par, es decir, par, necesitamos saltar fuera del ciclo actual y no queremos agregarlo. En este momento, podemos usar el descanso. Por ejemplo:

count = 1
sum = 0
while (count <= 100):
    if ( count % 2 == 0):  # 双数时跳过输出
        count = count + 1
        continue
    sum = sum + count
    count = count + 1
print(sum)

执行结果:
2500

para bucle de iteración

Formato de sintaxis básica:

for iterating_var in sequence:
   statements(s)
#sequence:可迭代对象

Luego podemos escribir un ejemplo para probarlo de acuerdo con este formato gramatical básico:

for i in 'hello':
    print(i)

执行结果:
h
e
l
l
o

A partir de los resultados de la impresión, se trata de encadenar helloun carácter impreso.

¿Qué pasa si cambiamos la cadena a un diccionario de diccionario?

dict1 = {
    
    'name':'李四','age':'18','from':'福建'}
for i in dict1:# i 是key
    print(i+':',dict1[i])

执行结果:
name: 李四
age: 18
from: 福建

para recorrer la lista a la instancia de elemento doble:

#取列表值——遍历列表
#双元素
l = [(1, 2), (3, 4), (5, 6)]
for x, y in l:
    print(x, y)

l = [(1, 2), (3, 4), (5, 6)]
for x, y in enumerate(l):
    print(x, y)

执行结果:
1 2
3 4
5 6
0 (1, 2)
1 (3, 4)
2 (5, 6)

para sintaxis anidada en bucle

Ejemplos:

for num in range(10,15):  # 迭代 10 到 20 之间的数字
   for i in range(2,num): # 根据因子迭代
      if num%i == 0:      # 确定第一个因子
         j=num/i          # 计算第二个因子
         print ('%d 是一个合数' % num)
         break            # 跳出当前循环
   else:                  # 循环的 else 部分
      print ('%d 是一个质数' % num)

执行结果:
10 是一个合数
11 是一个质数
12 是一个合数
13 是一个质数
14 是一个合数

Por supuesto, también se utiliza la for … elsedeclaración.

De hecho, las declaraciones en el bucle for no son diferentes de las ordinarias. Las declaraciones en el else se ejecutarán después de que el bucle se ejecute normalmente (es decir, las declaraciones en el else no se ejecutarán cuando el for termine el bucle a través de descanso).

Por supuesto que for … elselo habrá while … else. Todos significan lo mismo.

función range ()

El bucle o se usa a menudo junto con la función range ().

Si no conoce la función range (), podemos entenderla directamente a través de un programa.

for i in range(3):
    print(i)

执行结果:
0
1
2

Con la función range (x), puede generar una secuencia de números enteros de 0 a x-1.

Si se trata de range(a,b)una función, puede generar una secuencia de enteros a la izquierda cerrada y abierta a la derecha.

De hecho, en el ejemplo range(3)se puede escribir range(0,3), el resultado es el mismo.

De hecho, usamos la función range () para ejecutar un fragmento de código repetidamente n veces.

Aquí hay una pregunta. Observa cuidadosamente la función range (). ¿Cuáles son las características comunes de las de un parámetro o de dos parámetros mencionadas anteriormente?

No sé si ha descubierto que aumenta en 1 cada vez.

range(3) Es decir, 0, 1, 2 y se incrementa en 1 cada vez.

range(3,6) Es decir, 3, 4 y 5 se incrementan en 1 cada vez.

¿No se puede incrementar en 1 cada vez?

Por ejemplo, ¿quiero incrementar en 2?

En la preparación del programa, definitivamente encontrará tal demanda. Y desde el desarrollo de Python, la función de rango ciertamente tendrá este tipo de función.

Entonces, la función de rango también tiene tres parámetros.

Por ejemplo range(0,10,2), significa: contar de 0 a 10 (sin tomar 10), con un intervalo de 2 cada vez.

La diferencia entre bucle for y bucle while

Como se mencionó anteriormente, si una gramática puede expresar una función, no es necesario utilizar dos gramáticas para expresarla.

Dado que ambos son bucles, debe haber diferencias entre los bucles for y while.

¿Cuándo usas bucles for y bucles while?

  • El bucle for se usa principalmente cuando se itera sobre un objeto iterable.
  • El ciclo while se usa principalmente en el caso de ejecución repetida que necesita cumplir ciertas condiciones para ser verdadera. (Bucle infinito + salida de interrupción, etc.)
  • En algunos casos, los bucles for y while se pueden usar indistintamente.

Los ejemplos de for y while se pueden usar indistintamente:

for i in range(0, 10):
    print(i)


i = 0
while i < 10:
    print(i)
    i = i + 1

Caso de estudio

1. Imprime la tabla de multiplicar nueve-nueve

# 打印九九乘法表
for i in range(1, 10):
        for j in range(1, i+1):
            # 打印语句中,大括号及其里面的字符 (称作格式化字段) 将会被 .format() 中的参数替换,注意有个点的
            print('{}x{}={}\t'.format(i, j, i*j), end='')  
        print() #这里有换行的意思

Resultados del:

1x1=1	
2x1=2	2x2=4	
3x1=3	3x2=6	3x3=9	
4x1=4	4x2=8	4x3=12	4x4=16	
5x1=5	5x2=10	5x3=15	5x4=20	5x5=25	
6x1=6	6x2=12	6x3=18	6x4=24	6x5=30	6x6=36	
7x1=7	7x2=14	7x3=21	7x4=28	7x5=35	7x6=42	7x7=49	
8x1=8	8x2=16	8x3=24	8x4=32	8x5=40	8x6=48	8x7=56	8x8=64	
9x1=9	9x2=18	9x3=27	9x4=36	9x5=45	9x6=54	9x7=63	9x8=72	9x9=81	

2. Determine si es un año bisiesto.

# 判断是否是闰年
year = int(input("请输入一个年份: "))
if (year % 4) == 0 and (year % 100) != 0 or (year % 400) == 0:
    print('{0} 是闰年' .format(year))
else:
     print('{0} 不是闰年' .format(year))

Resultados del ejemplo de ejecución:

请输入一个年份: 2020
2020 是闰年

Supongo que te gusta

Origin blog.csdn.net/qq_46485161/article/details/115269418
Recomendado
Clasificación