PROBLEMA 1 Para cada una de las siguientes expresiones, indique el valor devuelto, si la evaluación da lugar a un error, escriba la palabra "error". Podrías simplemente escribir estas expresiones en un shell de inicio, te animamos a que respondas directamente ya que esto ayudará a reforzar su comprensión de las expresiones de Python básicas. Nota: Prioridad de las operaciones Boolean de Python. Para estos problemas, es importante entender la prioridad de las operaciones booleanas. El orden de las operaciones es la siguiente: 1. Los paréntesis. Antes de operar en cualquier otra cosa, Python evalua todos los parentésis comenzando con los más anidados. 2. not 3. and 4. or Lo que esto significa es que una expresión como: not True and False Se evalúa como False, porque el 'not' se evalúa primero ('not True' es False), después el 'and' se evalúa, 'False and False' es 'False'. Sin embargo la expresión: not (True and False) Se evalúa como True, porque la expresión dentro de los paréntesis se debe evaluar primero – 'True and False' es False. A continuación, el que 'not' se puede evaluar, es decir, 'not False' es True. En general, se deben utilizar siempre paréntesis al escribir expresiones para dejar en claro el orden en que desea que Python evalúa la expresión. Como hemos visto aquí, 'not (True and False) es diferente de '(not True) and False' - pero es fácil ver cómo Python evaluará cuando se utilizan paréntesis. Una declaración como 'not True and False' puede traer confusión! Ejemplo: 1. 3 > 4 False Realice los siguientes ejercicios con las instrucciones mencionadas. 2. 4.0 > 3.999 3. 4 > 4 4. 4 > + 4 5. 2 + 2 == 4 6. True or False 7. False or False 8. not False 9. 3.0 - 1.0 != 5.0 - 3.0 10. 3 > 4 or (2 < 3 and 9 > 10) 11. 4 > 5 or 3 < 4 and 9 > 8 12. not(4 > 3 and 100 > 6) PROBLEMA 2 A continuación se presenta una sesión con el shell (interface dinámica) de Python. Para cada expresión que se evalúa, proporcionar el tipo y el valor de regreso. Si la evaluación fuera un error, selecciona 'NoneType' y escribe la palabra "error". Podrías simplemente escribir estas expresiones en un shell de inicio, te animamos a que respondas directamente ya que esto ayudará a reforzar su comprensión de las expresiones de Python básicas. Supóngase que las expresiones se evalúan en el orden mostrado – esto es, cada parte problema se evalúa directamente después de la partes anteriores. Nota: Palabra clave o reservada 'None' de Python En Python, la palabra clave 'None' se utiliza con frecuencia para representar la ausencia de un valor. 'None' es el único valor en Python del tipo 'NoneType'. Ejemplo: 1. >>> a = 3 >>> a + 2.0 a) b) c) d) e) Nonetype int float boolean string Valor: 5.0 Realice los siguientes ejercicios con las instrucciones mencionadas. 2. >>> a = a + 1.0 >>> a a) b) c) d) e) Nonetype int float boolean string 3. >>> a = 3 >>> b a) b) c) d) e) Valor Nonetype int float boolean string 5. >>> a = 5.0 >>> a a) b) c) d) e) Valor: Nonetype int float boolean string 4. >>> b = 10 >>> c = b > 9 >>> c a) b) c) d) e) Valor: Nonetype int float boolean string Valor: PROBLEMA 3 Para cada una de las siguientes expresiones, indica el valor devuelto, si la evaluación da lugar a un error, escribe la palabra "error". Podrías simplemente escribir estas expresiones en un shell de inicio, te animamos a que respondas directamente ya que esto ayudará a reforzar tu comprensión de las expresiones de Python básicas. Ejemplo: 1. "a" + "bc" Valor: 'abc' Realice los siguientes ejercicios con las instrucciones mencionadas. 2. 3 * "bc" Valor: 3. "3" * "bc" Valor: 4. "abcd"[2] Valor: 5. "abcd"[0:2] Valor: 6. "abcd"[:2] Valor: 7. "abcd"[2:] Valor: PROBLEMA 4 Para cada una de las expresiones siguientes, especifica su tipo y el valor. Si se genera un error, seleccione el tipo de 'NoneType' y escribir la palabra "error" en el cuadro para el valor. Podrías simplemente escribir estas expresiones en un shell de inicio (Interface dinámica), te animamos a que respondas directamente ya que esto ayudará a reforzar tu comprensión de las expresiones de Python básicas. Nota 1: El operador 'in' de Python Los operadores 'in' y 'not in' prueban la pertenencia a una colección (una "colección" hace referencia a una cadena, lista, tupla o diccionario - no te preocupes, vamos a cubrir listas, tuplas y diccionarios en breve). La expresión: element in col Evalúa como True si element es un miembro de la colección col, y False en caso contrario. La expresión: element not in col Evalúa como True si element no es un miembro de la colección col, y False en caso contrario. Tenga en cuenta que la ultima expresión regresa la negación de 'element in col' - es decir, la expresión 'element not in col' es equivalente a la expresión 'not(element in col)' Nota 2: Slicing avanzado en cadenas Hemos visto que se puede hacer slicing en una cadena con expresiones tales como s [i: j], la cual regresa una porción de la secuencia s del índice i de índice j-1. Sin embargo, esta no es la única manera de hacer slice a una cadena! Si se omite el índice inicial, Python asumirá que usted desea iniciar su slice en el índice 0. Si se omite el índice final, Python asumirá que usted desea terminar su slice en el extremo de la cadena. Observa el siguiente código que se ejecuta en la terminal de Python: >>> s = 'Python is Fun!' >>> s[1:5] 'ytho' >>> s[:5] 'Pytho' >>> s[1:] 'ython is Fun!' >>> s[:] 'Python is Fun!' El último ejemplo es interesante! Si se omite tanto el inicio y final del índice, se obtiene la cadena original! Hay otra cosa genial que puedes hacer con un slice de cadena. Puede agregar un tercer parámetro, k, como: s [i: j: k]. Esto da un trozo de la cadena s del índice i de índice j, con el tamaño de paso k. Observa los siguientes ejemplos: >>> s = 'Python is Fun!' >>> s[1:12:2] 'yhni u' >>> s[1:12:3] 'yoiF' >>> s[::2] 'Pto sFn' El último ejemplo es similar al ejemplo de s [:]. Con s [:: 2], estamos pidiendo la cadena completa s (desde el índice 0 a 13), con un tamaño de paso de 2. Asuma que se hacen las siguientes asignaciones: > str1 = 'hello' > str2 = ',' > str3 = 'world' Ejemplo: 1. str1 a) b) c) d) e) Valor: 'hello' Nonetype int float boolean string Realice los siguientes ejercicios con las instrucciones mencionadas. 2. str1[0] a) b) c) d) e) Nonetype int float boolean string 3. str1[1] a) b) c) d) e) Valor: Nonetype int float boolean string 4. str1[-1] a) b) c) d) e) Valor: Nonetype int float boolean string Valor: 5. len(str1) a) b) c) d) e) Valor: Nonetype int float boolean string 6. str1[len(str1)] a) b) c) d) e) Valor: Nonetype int float boolean string 7. str1 + str2 + str3 a) b) c) d) e) Valor: Nonetype int float boolean string 8. str1 + str2 + ' ' + str3 a) b) c) d) e) Nonetype int float boolean string 9. str3 * 3 a) b) c) d) e) Valor: Nonetype int float boolean string 10. 'hello' == str1 a) b) c) d) e) Valor: Nonetype int float boolean string Valor: 11. 'HELLO' == str1 a) b) c) d) e) Nonetype int float boolean string 12. 'a' in str3 a) b) c) d) e) Valor: Valor: Nonetype int float boolean string 13. str4=str1+str3 'low' in str4 a) b) c) d) e) Nonetype int float boolean string 14. str3[1:3] a) b) c) d) e) Valor: Nonetype int float boolean string 16. str3[:-1] a) b) c) d) Valor: Nonetype int float boolean string 15. str3[:3] a) b) c) d) e) Valor: Nonetype int float boolean Valor: e) string 17. str1[1:] a) b) c) d) e) Nonetype int float boolean string 18. str4[1:9] a) b) c) d) e) Valor: Nonetype int float boolean string 20. str4[::-1] a) b) c) d) e) Valor: Nonetype int float boolean string 19. str4[1:9:2] a) b) c) d) e) Valor: Valor: Nonetype int float boolean string PROBLEMA 5 Realiza un programa que pida dos datos al usuario. Guarda estos datos con los identificadores “varA” y “varB” de tal manera que Python escriba alguno de estos mensajes: • "Cadenas de caracteres" si varA o varB son cadenas de caracteres • "Mas grande" si varA es mas grande que varB • "Igual" si varA es igual a varB • "Mas pequeña" si varA es mas pequeña que varB Ayuda 1. ¿Recuerda la función type()? Ayuda 2. ¿Recuerda de los vídeos tutoriales a la función input()? PROBLEMA 6 Elabora un programa que resuelva la ecuación de segundo grado: ax 2+ bx+ c=0 • Los datos que ingresa el usuario son los coeficientes • Debe verificarse que se trata de una ecuación de segundo grado, es decir, el coeficiente “a” debe ser diferente de cero. ¿Por qué es importante esto? • El programa debe desplegar las dos soluciones de la ecuación cuadrática, cuando esto sea posible, recuerde que solo existen raíces cuadradas de números positivos (no se trabajará con números complejos). De no ser así, debe de indicar al usuario que las soluciones no son números reales. PROBLEMA 7 Escriba un programa que pida al usuario un determinado numero de segundos, el programa debe de regresar a cuantos días horas minutos y segundos equivale ese numero. Ejemplo: entrada---->>> 3670 salida---->>> 3670 segundos equivalen a 0 días 1 hora 1 minuto y 10 segundos. Ayuda. Investigue sobre el operador de Python '//' conocido como división entera. Nota: Te recomiendo revisar los vídeos en la página del curso