""

domingo, 19 de abril de 2026

Respuesta a los ejercicios 1, 2, 3 de ThinkCspy 7.10

 1). ¿A qué se evalúan estas expresiones?

3 == 3

3 != 3

3 >= 4

not (3 < 4)

Solución:

>>print(3==3)

>>print(3!=3)

>>print(3>=4)

>>print(not(3<4))

>>>

True
False
False
False

2). Dar el opuestos lógicos de estas condiciones. No está permitido utilizar el not operador.
a > b a >= b a >= 18 and day == 3 a >= 18 or day != 3

Solución

# a < b # a <= b # a <= 18 and day != 3 # a<=18 or day ==3

3. Escriba una función a la que se le dé una calificación de examen y devuelva una cadena — la calificación de esa calificación — de acuerdo con esto esquema: Marca Grade = 90 A [80-90) B [70-80) C [60-70) D < 60 F Los corchetes cuadrados y redondos indican intervalos cerrados y abiertos. Un intervalo cerrado incluye el número y el intervalo abierto lo excluye. Entonces 79,99999 obtiene la calificación C, pero 80 obtiene la calificación B. Pruebe su función imprimiendo la nota y la calificación de varias notas diferentes.

Solución de PPI:

>>def calificar_examen(nota):
>>  if nota >=90:
>>    print("La calificación de: " +str(nota) + " es: A")
>>  elif nota >= 80:
>>    print("La calificación de: " +str(nota) + " es: B")
>>  elif nota >= 70:
>>    print("La calificación de: " +str(nota) + " es: C")
>>  elif nota >= 60:
>>    print("La calificación de: " +str(nota) + " es: D")
>>  else:
>>    print("La calificación de: " +str(nota) + " es: F")

>>calificar_examen(80)
>>calificar_examen(90)
>>calificar_examen(70)
>>calificar_examen(60)
>>print(" ")
>>calificar_examen(88)
>>calificar_examen(98)
>>calificar_examen(78)
>>calificar_examen(68)
>>calificar_examen(58)
>>print("Solución de PPI, Python para ingenieros")

>>>

La calificación de: 80 es: B
La calificación de: 90 es: A
La calificación de: 70 es: C
La calificación de: 60 es: D
 
La calificación de: 88 es: B
La calificación de: 98 es: A
La calificación de: 78 es: C
La calificación de: 68 es: D
La calificación de: 58 es: F
Solución de PPI, Python para ingenieros

Solución de ThinkCspy:

>>def grade(mark):

>>    if mark >= 90:

>>        return "A"

>>    else:

>>        if mark >= 80:

>>            return "B"

>>        else:

>>            if mark >= 70:

>>                return "C"

>>            else:

>>                if mark >= 60:

>>                    return "D"

>>                else:

>>                    return "F"


>>mark = 83

>>print( "Mark:", str(mark), "Grade:", grade(mark))

>>>

Mark: 83 Grade: B


ThinkCspy 7.10 Ejercicios de funciones booleanas

 Fuente: ThinkCspy

7.10. Ejercicios

1.¿A qué se evalúan estas expresiones?

  1. 3 == 3

  2. 3 != 3

  3. 3 >= 4

  4. not (3 < 4) 


Respuestas:

1. Verdadero

2. Falso
3. Falso
4. Falso

2. Dar el opuestos lógicos de estas condiciones. No está permitido utilizar el not operador.

  1. a > b

  2. a >= b

  3. a >= 18  and  day == 3

  4. a >= 18  or  day != 3


3. Escriba una función a la que se le dé una calificación de examen y devuelva una cadena — la calificación de esa calificación — de acuerdo con esto esquema:

Marca

Grade

>= 90

A

[80-90)

B

[70-80)

C

[60-70)

D

< 60

F

Los corchetes cuadrados y redondos indican intervalos cerrados y abiertos. Un intervalo cerrado incluye el número y el intervalo abierto lo excluye. Entonces 79,99999 obtiene la calificación C, pero 80 obtiene la calificación B.

Pruebe su función imprimiendo la nota y la calificación de varias notas diferentes.


4. Modifique el programa de gráfico de barras de tortuga del capítulo anterior para que la barra tenga cualquier valor de 200 o más se rellena de rojo, los valores entre [100 y 200) se rellenan de amarillo, y las barras que representan valores inferiores a 100 están rellenas de verde.


5. En el programa de gráfico de barras de tortuga, ¿qué espera que suceda si uno o más ¿El valor de los datos en la lista es negativo? Vuelve y pruébalo. Cambiar el programa para que cuando imprima el valor del texto para las barras negativas, coloque el texto encima de la base de la barra (en el eje 0).

6. Escribe una función findHypot. A la función se le dará la longitud de dos lados de un triángulo rectángulo y debería regresar la longitud de la hipotenusa. (Pista: devolverá la raíz cuadrada o la usará del módulo de matemáticas)x ** 0.5sqrt

7. Escribe una función llamada is_even(n) que toma un número entero como argumento y regresa True si el argumento es un número par y False si lo es extraño.


8. Ahora escribe la función is_odd(n) que regresa True cuando n es extraño y False de otro modo.

9. Modificar is_odd para que utilice una llamada a is_even para determinar si es El argumento es un número entero impar.

10. Escribe una función is_rightangled que, dada la longitud de tres lados de un triángulo, determinará si el triángulo está en ángulo recto. Supongamos que el tercer argumento del La función es siempre el lado más largo. Volverá True si el triángulo está en ángulo recto, o False de otro modo.

Sugerencia: la aritmética de punto flotante no siempre es exactamente precisa, por lo tanto, no es seguro probar la igualdad de los números de punto flotante. Si un buen programador quiere saber si x es igual o lo suficientemente cercano a yProbablemente lo codificarían como

if  abs(x - y) < 0.001:      # if x is approximately equal to y
....
11. Amplíe el programa anterior para que los lados se puedan dar a la función en cualquier orden.

12. Se deben tener en cuenta 3 criterios para identificar los años bisiestos:


13. El año es divisible uniformemente por 4;

Si el año se puede dividir equitativamente por 100, NO es un año bisiesto, a menos que;

El año también es divisible uniformemente por 400. Entonces es un año bisiesto.

Escriba una función que tome un año como parámetro y devuelva True Si el año es bisiesto, False de otro modo.


Implementar la calculadora para la fecha de Pascua.

El siguiente algoritmo calcula la fecha del Domingo de Pascua para cualquier año entre 1900 y 2099.

Pídale al usuario que ingrese un año. Calcule lo siguiente:

  1. a = año % 19

  2. b = año % 4

  3. c = año % 7

  4. d = (19*a+24) % 30

  5. e = (2*b+4*c+6*d+5) % 7

  6. fecha de Pascua = 22 + d + e

Nota especial: El algoritmo puede dar una fecha en abril. Además, si el año es uno de cuatro especiales años (1954, 1981, 2049 o 2076) luego reste 7 de la fecha.

Su programa debería imprimir un mensaje de error si el usuario proporciona una fecha fuera de rango.


Thinkcspy. 7.9 Glosario de funciones booleanas

 Fuente: ThinkCspy

7.9. Glosario

bloque

Un grupo de declaraciones consecutivas con la misma sangría.

cuerpo

El bloque de declaraciones en una declaración compuesta que sigue a la cabecera.

expresión booleana

Una expresión que es verdadera o falsa.

función booleana

Una función que devuelve un valor booleano. El único posible valores de la bool tipo son False y True.

valor booleano

Hay exactamente dos valores booleanos: True y False. Booleano Los valores resultan cuando Python evalúa una expresión booleana interpreter. Tienen tipo bool.

sucursal

Una de las posibles vías del flujo de ejecución determinada por ejecución condicional.

condicional encadenado

Una rama condicional con más de dos posibles flujos de ejecución. En Los condicionales encadenados de Python se escriben con declaraciones.if ... elif ... else

operador de comparación

Uno de los operadores que compara dos valores: ==!=><>=, y <=.

condition

La expresión booleana en una declaración condicional que determina cuál Se ejecuta la rama.

declaración condicional

Una declaración que controla el flujo de ejecución dependiendo de algunos condition. En Python las palabras clave ifelif, y else son utilizado para declaraciones condicionales.

operador lógico

Uno de los operadores que combina expresiones booleanas: andor, y not.

operador de módulo

Un operador, indicado con un signo de porcentaje ( %), eso funciona en números enteros y produce el resto cuando un número se divide por otro.

nidificación

Una estructura de programa dentro de otra, como una declaración condicional dentro de una rama de otra declaración condicional.

Thinkcspy. 7.8 Funciones boleanas

 Fuente: Thinkcspy. Traducción: Google

7.8. Funciones booleanas

Ya hemos visto que los valores booleanos resultan de la evaluación de expresiones booleanas. Desde el resultado de cualquiera La evaluación de la expresión se puede devolver mediante una función (usando el return declaración), Las funciones pueden devolver valores booleanos. Esta resulta ser una forma muy conveniente de ocultar los detalles de pruebas complicadas. Por ejemplo:


>>def isDivisible(x, y):      # se define la isDivisible, con parámetros x,y

>>    if x % y == 0:            # se evalúa la condición del if con el operador modulo %

>>        result = True        # si se cumple la condición a la variable result se le asigna True

>>    else:                        # si la condición no se cumple a result se le asigna False

>>        result = False


>>    return result            # la función devuelve el valor de result


>>print(isDivisible(10, 5))  # se invoca la funcion para x,y = 10, 5

>>>

True

El nombre de esta función es isDivisible. Es común dar booleano funciones nombres que suenan como preguntas de sí/no. isDivisible devuelve o True o False para indicar si el x es o no es divisible por y.

Podemos hacer la función más concisa aprovechando el hecho de que condición de la if La declaración es en sí misma una expresión booleana. Podemos regresar directamente, evitando el if declaración completa:

>>def isDivisible(x, y):
>>    return x % y == 0


Las funciones booleanas se utilizan a menudo en declaraciones condicionales:

>>if isDivisible(x, y):
    ... # do something ...
>>else:
    ... # do something else ...


Podría resultar tentador escribir algo como pero la comparación adicional es redundante. Sólo necesitas un expresión si estás comparando algún otro tipo que no sea booleano. ( También se puede hacer más conciso como ). El siguiente ejemplo muestra el función en el trabajo. Observe cómo descriptivo el código es cuando movemos los detalles de la prueba a una función booleana. Pruébalo con algunos otros parámetros reales para ver qué está impreso.if isDivisible(x, y) == True:==isDivisible(x, y) == Falsenot isDivisible(x, y)isDivisible


>>def isDivisible(x, y):                                 # Se redefine la función para los parámetros x,y

>>    return x % y == 0                                # se elimina el if y else y se retorna la evaluación del modulo


>>if isDivisible(10, 5):                           

>>    print("That works")

>>else:

>>    print("Those values are no good")

>>>

That works


Comprueba tu comprensión

¿Qué es una función booleana?

✔️ Una función booleana es como cualquier otra función, pero siempre devuelve Verdadero o Falso.


¿Es legal la siguiente declaración en una función de Python (suponiendo que x, y y z se definen como números)?

return x + y < z

Elige uno

✔️ Es perfectamente válido devolver el resultado de evaluar una expresión booleana.


7.8.1. Más pruebas unitarias

Cuando escribimos pruebas unitarias, también debemos considerar clases de equivalencia de salida que dan como resultado resultados significativamente diferentes.

El isDivisible La función puede devolver cualquiera de los dos True o False. Estos dos resultados diferentes nos dan dos clases de equivalencia. Luego elegimos entradas que deberían dar cada uno de los diferentes resultados. Es importante tener al menos una prueba para cada clase de equivalencia de salida.

>>def isDivisible(x, y):

>>    '''is x evenly divisible by y?'''

>>    return x % y == 0


>>if __name__ == "__main__":

>>    import test

>>>
Línea 6: 'prueba' importada pero no utilizada
    prueba de importación

Ampliar el programa…

A partir de la línea 7, escriba dos pruebas unitarias (que deberían pasar), una para cada clase de equivalencia de salida.


Antes de seguir leyendo...

Hacer grandes cosas lleva tiempo y dinero. Si aprecia el libro que está leyendo ahora y desea mantener materiales de calidad gratuitos para otros estudiantes, considere hacer una donación a Runestone Academy. Le pedimos que considere una donación de $10, pero si puede dar más, eso es genial, si $10 es demasiado para su presupuesto, estaremos contentos con lo que pueda pagar como muestra de apoyo.

https://runestone.academy/runestone/default/donate?ad=2

NOTA: "PPI, Python para ingenieros", es un blog de contenido gratuito que busca ayudar a democratizar el conocimiento relacionado con el lenguaje Python sin animo de lucro, pero se entiende que fundaciones o entidades que publican contenido libre en internet requieren de fondos para poder operar. por esta razón compartimos el link de donación de runestone, como parte de la entrada publicada y sin tener ninguna relacion con dicho recaudo.

Entradas recientes

Respuesta a los ejercicios 1, 2, 3 de ThinkCspy 7.10

 1). ¿A qué se evalúan estas expresiones? 3 == 3 3 != 3 3 >= 4 not (3 < 4) Solución: >>print(3==3) >>print(3!=3) >>p...

Entradas Populares