Conocimientos básicos de Python (2): declaraciones condicionales, declaraciones de bucle, deducciones

Inserte la descripción de la imagen aquí

1 declaración condicional

1.1 declaración if

if expression:
    expr_true_suite
  • si el expr_true_suitebloque de código de instrucción solo si la expresión condicional expressiones verdadera si se implementa, de lo contrario, continuaremos ejecutando la instrucción inmediatamente detrás del bloque de código.
  • Declaración única si expressionla expresión condicional por operadores booleanos and, ory notpara lograr múltiples condicional.

【ejemplo】

if 2 > 1 and not 2 > 3:
    print('Correct Judgement!')
# Correct Judgement!

1.2 declaración if-else

if expression:
    expr_true_suite
else
    expr_false_suite
  • Python proporciona el else usado con if, si el resultado de la expresión condicional de la instrucción if es falso, el programa ejecutará el código después de la instrucción else.

【ejemplo】

temp = input("猜一猜小仙女想的是哪个数字?")
guess = int(temp) # input 函数将接收的任何数据类型都默认为 str。
if guess == 666:
    print("你太了解小仙女的心思了!")
    print("哼,猜对也没有奖励!")
else:
    print("猜错了,小仙女现在心里想的是666!")
print("游戏结束,不玩儿啦!")

ifLas oraciones admiten el anidamiento, lo que significa que una iforación se inserta en otra iforación para formar un nivel diferente de estructura de selección. Python usa sangrías en lugar de llaves para marcar los límites del bloque de código, así que preste especial atención al elseproblema de colgar.
【ejemplo】

hi = 6
if hi > 2:
    if hi > 7:
        print('好棒!好棒!')
else:
    print('切~')

1.3 declaración if-elif-else

if expression1:
    expr1_true_suite
elif expression2:
    expr2_true_suite
    .
    .    
elif expressionN:
    exprN_true_suite
else:
    expr_false_suite
  • La declaración elif es el else if, que se utiliza para comprobar si varias expresiones son verdaderas y ejecutar el código en un bloque de código específico cuando es verdadera.

【ejemplo】

temp = input('请输入成绩:')
source = int(temp)
if 100 >= source >= 90:
    print('A')
elif 90 > source >= 80:
    print('B')
elif 80 > source >= 60:
    print('C')
elif 60 > source >= 0:
    print('D')
else:
    print('输入错误!')

1.4 aseverar palabra clave

  • assertSe utiliza para juzgar una expresión y activar AssertionErroruna excepción cuando la condición de la expresión es falsa .
    Las afirmaciones pueden devolver directamente un error cuando no se cumplen las condiciones y el programa se ejecuta, sin esperar a que el programa se bloquee después de ejecutarse. Por ejemplo, nuestro código solo se puede ejecutar en el sistema Linux. Primero puede determinar si el sistema actual cumple las condiciones.

【ejemplo】

my_list = ['lsgogroup']
my_list.pop(0)
assert len(my_list) > 0
# AssertionError
  • Durante las pruebas unitarias, se puede utilizar para colocar puntos de control en el programa.Sólo la condición es Verdadera para que el programa funcione normalmente.
    【ejemplo】
assert 3 > 7
# AssertionError

2 Declaración de bucle

2.1 bucle while

whileLa forma más básica de una declaración incluye una expresión booleana en la parte superior y una o más whiledeclaraciones con sangría que pertenecen al bloque de código.

while 布尔表达式:
    代码块

whileEl bloque de código en bucle continuará en bucle hasta que el valor de la expresión booleana sea booleano falso.
Si la expresión booleana no tiene un <、>、==、!=、in、not inoperador igual, también es posible dar solo condiciones como valores. Cuando whilese escribe posteriormente un entero distinto de cero, se considera un valor verdadero y se ejecuta el cuerpo del bucle; 0cuando se escribe , se considera un valor falso y el cuerpo del bucle no se ejecuta. También puede escribir str、listo cualquier secuencia. Una longitud distinta de cero se considera un valor verdadero y el cuerpo del bucle se ejecuta; de lo contrario, se considera un valor falso y el cuerpo del bucle no se ejecuta.

【ejemplo】

count = 0
while count < 3:
    temp = input("不妨猜一下小哥哥现在心里想的是那个数字:")
    guess = int(temp)
    if guess > 8:
        print("大了,大了")
    else:
        if guess == 8:
            print("你是小哥哥心里的蛔虫吗?")
            print("哼,猜对也没有奖励!")
            count = 3
        else:
            print("小了,小了")
    count = count + 1
print("游戏结束,不玩儿啦!")

[Ejemplo] La expresión booleana devuelve 0 y el bucle termina.

string = 'abcd'
while string:
    print(string)
    string = string[1:]
# abcd
# bcd
# cd
# d

2.2 bucle while-else

while 布尔表达式:
    代码块
else:
    代码块

Cuando el whilebucle se ejecuta normalmente, la elsesalida whilese ejecuta Si la instrucción que salta del bucle se ejecuta en el bucle, por ejemplo break, elseel contenido del bloque de código no se ejecutará .
【ejemplo】

count = 0
while count < 5:
    print("%d is  less than 5" % count)
    count = count + 1
else:
    print("%d is not less than 5" % count)    
# 0 is  less than 5
# 1 is  less than 5
# 2 is  less than 5
# 3 is  less than 5
# 4 is  less than 5
# 5 is not less than 5

【ejemplo】

count = 0
while count < 5:
    print("%d is  less than 5" % count)
    count = 6
    break
else:
    print("%d is not less than 5" % count)
# 0 is  less than 5

2.3 para bucle

forUn bucle es un bucle iterativo, que es equivalente a un iterador de secuencia general en Python. Puede atravesar cualquier secuencia ordenada, str、list、tuplecomo, etc., y también puede atravesar cualquier objeto iterable, como dict.

for 迭代变量 in 可迭代对象:
    代码块

En cada bucle, la variable de iteración se establece en el elemento actual del objeto iterable y se proporciona al bloque de código.
【ejemplo】

for i in 'ILoveMAOMAO':
    print(i, end=' ')  # 不换行输出
# I L o v e M A O M A O

【ejemplo】

member = ['张三', '李四', '刘德华', '刘六', '周润发']
for i in range(len(member)):
    print(member[i])
# 张三
# 李四
# 刘德华
# 刘六
# 周润发

【ejemplo】

dic = {
    
    'a': 1, 'b': 2, 'c': 3, 'd': 4}
for key, value in dic.items():
    print(key, value, sep=':', end=' ')    
# a:1 b:2 c:3 d:4 

2.4 bucle for-else

for 迭代变量 in 可迭代对象:
    代码块
else:
    代码块

Cuando el forbucle se ejecuta normalmente, se ejecuta la elsesalida Si forla instrucción que salta del bucle se ejecuta en el bucle, por ejemplo break, elseel contenido del bloque de código no se ejecutará , while - elseal igual que la declaración.
【ejemplo】

for num in range(10, 20):  # 迭代 10 到 20 之间的数字
    for i in range(2, num):  # 根据因子迭代
        if num % i == 0:  # 确定第一个因子
            j = num / i  # 计算第二个因子
            print('%d 等于 %d * %d' % (num, i, j))
            break  # 跳出当前循环
    else:  # 循环的 else 部分
        print(num, '是一个质数')
# 10 等于 2 * 5
# 11 是一个质数
# 12 等于 2 * 6
# 13 是一个质数
# 14 等于 2 * 7
# 15 等于 3 * 5
# 16 等于 2 * 8
# 17 是一个质数
# 18 等于 2 * 9
# 19 是一个质数

breakLa declaración puede saltar del bucle de la capa actual.
continueTermine este ciclo y comience el siguiente.
passEs una declaración vacía, no realiza ninguna operación, solo sirve como marcador de posición y su función es mantener la integridad de la estructura del programa.

3 Iterador

3.1 función range ()

range([start,] stop[, step=1])
  • Este BIF (funciones integradas) tiene tres parámetros, dos de los cuales están entre corchetes indican que estos dos parámetros son opcionales.
  • step=1 Indica que el valor predeterminado del tercer parámetro es 1.
  • rangeLa función de este BIF es generar una secuencia de números startcomenzando con el valor del stopparámetro y terminando con el valor del parámetro, la secuencia contiene startvalores pero no contiene stopvalores.

【ejemplo】

for i in range(2, 5):  # 不包含9
    print(i)
# 2
# 3
# 4

3.2 función enumerate ()

enumerate(sequence, [start=0])
  • secuencia: una secuencia, iterador u otro objeto que admita la iteración.
  • inicio: la posición inicial del subíndice.
  • Devolver objeto enumerate (enumeración)
    [ejemplo]
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
lst = list(enumerate(seasons))
print(lst)
# [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]

lst = list(enumerate(seasons, start=1))  # 下标从 1 开始
print(lst)
# [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

enumerate()Uso combinado con for loop

for i, a in enumerate(A)
    do something with a  

Con enumerate(A)solo devuelve Ael elemento, el elemento también es un punto a un valor de índice (desde cero por defecto). Además, con enumerate(A, j)también puede determinar el valor inicial del índice j.
【ejemplo】

languages = ['Python', 'R', 'Matlab', 'C++']
for language in languages:
    print('I love', language)
print('Done!')
'''
I love Python
I love R
I love Matlab
I love C++
Done!
'''

4 Derivado

4.1 Comprensión de listas

[ expr for value in collection [if condition] ]

【ejemplo】

x = [i ** 2 for i in range(1, 10)]
print(x)
# [1, 4, 9, 16, 25, 36, 49, 64, 81]

【ejemplo】

x = [(i, i ** 2) for i in range(6)]
print(x)
# [(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25)]

【ejemplo】

x = [i for i in range(100) if (i % 2) != 0 and (i % 3) == 0]
print(x)
# [3, 9, 15, 21, 27, 33, 39, 45, 51, 57, 63, 69, 75, 81, 87, 93, 99]

4.2 Comprensión de tuplas

( expr for value in collection [if condition] )

【ejemplo】

a = (x for x in range(10))
print(a)
# <generator object <genexpr> at 0x0000025BE511CC48>
print(tuple(a))
# (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

4.3 Comprensión del diccionario

{
    
     key_expr: value_expr for value in collection [if condition] }

【ejemplo】

b = {
    
    i: i % 2 == 0 for i in range(10) if i % 3 == 0}
print(b)
# {0: True, 3: False, 6: True, 9: False}

4.4 Comprensión de conjuntos

{ expr for value in collection [if condition] }

【ejemplo】

c = {
    
    i for i in [1, 2, 3, 4, 5, 5, 6, 4, 3, 2, 1]}
print(c)
# {1, 2, 3, 4, 5, 6}

Preguntas de práctica :
1. Escriba un programa en Python para encontrar números divisibles entre 7 y 5, entre 1500 y 2700.

# your code here 
[i for i in range(1500,2700,1) if i%7 == 0 and i%5 == 0]

2. El juego de carreras de la tortuga y la liebre
Descripción del título:
Digamos que hay todo tipo de conejos y tortugas en este mundo, pero la investigación ha encontrado que todos los conejos y tortugas tienen una característica común: les gusta correr. Como resultado, las carreras de tortugas y liebres se llevan a cabo constantemente en todos los rincones del mundo. Xiaohua está muy interesado en esto, por lo que decide estudiar las razas de diferentes conejos y tortugas. Descubrió que, aunque los conejos corren más rápido que las tortugas, tienen un problema conocido: los orgullosos y los perezosos. Así que en un juego con tortugas, una vez que los conejos se encuentran por delante de t metros o más después de un segundo, se detienen. Descanse unos segundos. Para diferentes conejos, los valores de ty s son diferentes, pero todas las tortugas son iguales: nunca se detienen cuando llegan al final.
Sin embargo, algunos juegos son bastante largos y todo el proceso de visualización llevará mucho tiempo. Xiaohua descubrió que mientras los datos del conejo y la tortuga se registren después de que comience cada juego, la velocidad del conejo v1 (lo que significa que el conejo puede correr v1 metros por segundo), la velocidad de la tortuga La velocidad v2 y los valores tys correspondientes del conejo y la longitud de la pista pueden predecir el resultado de la carrera. Pero Xiaohua es muy vago y no quiere usar cálculos manuales para adivinar el resultado del juego, así que te buscó a ti, un estudiante talentoso del Departamento de Ciencias de la Computación de la Universidad de Tsinghua, para que lo ayudaras, escribe un programa, para los datos de entrada v1 de un juego, v2, t, s, l, predice el resultado del juego.
Entrada:
solo hay una línea de entrada, que incluye cinco enteros positivos v1, v2, t, s, l separados por espacios, donde (v1, v2 <= 100; t <= 300; s <= 10; l <= 10000 y Es el múltiplo común de v1, v2)
Salida: La
salida contiene dos líneas, la primera línea da como resultado el resultado del juego, una letra mayúscula "T" o "R" o "D", respectivamente, lo que indica que la tortuga gana, el conejo gana o ambas llegan al mismo tiempo. fin.
La segunda línea genera un número entero positivo, que indica el tiempo (en segundos) que tarda el ganador (o ambos lados) en llegar al punto final.


Entrada de muestra:
10 5 5 2 20
Salida de muestra
D

4

# your code here 
class Turtle_rabbit:
    def run(self,inputs):
        v1,v2,t,s,l = inputs
        result = []
        dist1,dist2 = 0, 0
        i = 0
        while dist1 < l and dist2 < l:
            dist1 += v1
            dist2 += v2
            i +=1
            if(dist1 == l or dist2 == l):
                break
            if(dist1 - dist2 >= t):
                dist1 -= s*v1    
                            
        if dist1 > dist2:
            result.append("R")
        elif dist1 < dist2:
            result.append("T")
        else:
            result.append("D") 
        result.append(i)
        return result
        
if __name__ == "__main__":
    inputs = (10,5,5,2,20)
    result = Turtle_rabbit()
    for i,data in enumerate(result.run(inputs)):
        print(data)

Referencias :

  • https://www.runoob.com/python3/python3-tutorial.html
  • https://www.bilibili.com/video/av4050443
  • https://mp.weixin.qq.com/s/DZ589xEbOQ2QLtiq8mP1qQ

DataWhale

Datawhale es una organización de código abierto que se centra en la ciencia de datos y la inteligencia artificial. Reúne a estudiantes excelentes de muchas universidades y empresas reconocidas en muchos campos, y reúne a un grupo de miembros del equipo con espíritu de código abierto y exploratorio. Con la visión de "para el alumno, crecer con los alumnos", Datawhale fomenta la verdadera autoexpresión, la apertura y la tolerancia, la confianza mutua y la asistencia mutua, el valor para intentar cometer errores y el valor para asumir la responsabilidad. Al mismo tiempo, Datawhale utiliza el concepto de código abierto para explorar contenido de código abierto, aprendizaje de código abierto y soluciones de código abierto, potenciar la formación del talento, ayudar al crecimiento del talento y establecer una conexión entre personas, personas y conocimiento, personas y empresas, y personas y el futuro.

Supongo que te gusta

Origin blog.csdn.net/OuDiShenmiss/article/details/107533168
Recomendado
Clasificación