









Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Programacion en python enfocado con cisco
Tipo: Apuntes
Subido el 20/09/2021
1 / 16
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!










Un símbolo de // (doble diagonal) es un operador de división entera. Difiere del operador estándar / en dos detalles: El resultado carece de la parte fraccionaria, está ausente (para los enteros), o siempre es igual a cero (para los flotantes); esto significa que los resultados siempre son redondeados. Se ajusta a la regla entero vs flotante. Ejecuta el ejemplo debajo y observa los resultados: print(6 // 3) print(6 // 3.) print(6. // 3) print(6. // 3.) Como se puede observar, una división de entero entre entero da un resultado entero. Todos los demás casos producen flotantes. Hagamos algunas pruebas más avanzadas. Observa el siguiente fragmento de código: print(6 // 4) print(6. // 4) Imagina que se utilizó / en lugar de // - ¿Podrías predecir los resultados? Si, sería 1.5 en ambos casos. Eso está claro. Pero, ¿Qué resultado se debería esperar con una división //? Ejecuta el código y observa por ti mismo. Lo que se obtiene son dos unos, uno entero y uno flotante. El resultado de la división entera siempre se redondea al valor entero inferior más cercano del resultado de la división no redondeada. Esto es muy importante: el redondeo siempre va hacia abajo. Observa el código e intenta predecir el resultado nuevamente: print(-6 // 4) print(6. // -4) Nota: Algunos de los valores son negativos. Esto obviamente afectara el resultado. ¿Pero cómo? El resultado es un par de dos negativos. El resultado real (no redondeado) es - 1.5 en ambo casos. Sin embargo, los resultados se redondean. El redondeo se hace hacia el valor inferior entero , dicho valor es -2, por lo tanto los resultados son: -2 y -2.0. NOTA La división entera también se le suele llamar en inglés floor división. Más adelante te cruzarás con este término.
El siguiente operador es uno muy peculiar, porque no tiene un equivalente dentro de los operadores aritméticos tradicionales. Su representación gráfica en Python es el símbolo de % (porcentaje), lo cual puede ser un poco confuso. Piensa en el como una diagonal (operador de división) acompañado por dos pequeños círculos. El resultado de la operación es el residuo que queda de la división entera. En otras palabras, es el valor que sobra después de dividir un valor entre otro para producir un resultado entero. Nota: el operador en ocasiones también es denominado módulo en otros lenguajes de programación. Observa el fragmento de código â “ intenta predecir el resultado y después ejecútalo: print(14 % 4) Como puedes observar, el resultado es dos. Esta es la razón: 14 // 4 da como resultado un 3 → esta es la parte entera, es decir el cociente. 3 * 4 da como resultado 12 → como resultado de la multiplicación entre el cociente y el divisor. 14 - 12 da como resultado 2 → este es el residuo. El siguiente ejemplo es un poco mas complicado: print(12 % 4.5) ¿Cuál es el resultado?
Como probablemente sabes, la división entre cero no funciona. No intentes: Dividir entre cero.
Realizar una división entera entre cero. Encontrar el residuo de una división entre cero.
El símbolo del operador de suma es el + (signo de más), el cual esta completamente alineado a los estándares matemáticos. De nuevo, observa el siguiente fragmento de código: print(-4 + 4) print(-4. + 8) El resultado no debe de sorprenderte. Ejecuta el código y revisa los resultados.
El símbolo del operador de resta es obviamente - (el signo de menos), sin embargo, debes notar que este operador tiene otra función - puede cambiar el signo de un número. Esta es una gran oportunidad para mencionar una distinción muy importante entre operadores unarios y binarios. En aplicaciones de resta, el operador de resta espera dos argumentos : el izquierdo (un minuendo en términos aritméticos) y el derecho (un sustraendo ). Por esta razón, el operador de resta es considerado uno de los operadores binarios, así como los demás operadores de suma, multiplicación y división. Pero el operador negativo puede ser utilizado de una forma diferente, observa la última línea de código del siguiente fragmento: print(-4 - 4) print(4. - 8) print(-1.1) Por cierto: también hay un operador + unario. Se puede utilizar de la siguiente manera: print(+2) El operador conserva el signo de su único argumento, el de la derecha. Aunque dicha construcción es sintácticamente correcta, utilizarla no tiene mucho sentido, y sería difícil encontrar una buena razón para hacerlo. Observa el fragmento de código que está arriba - ¿Puedes adivinar el resultado o salida?
Hasta ahora, se ha tratado cada operador como si no tuviera relación con los otros. Obviamente, dicha situación tan simple e ideal es muy rara en la programación real. También, muy seguido encontrarás más de un operador en una expresión, y entonces esta presunción ya no es tan obvia. Considera la siguiente expresión: 2 + 3 * 5 Probablemente recordaras de la escuela que las multiplicaciones preceden a las sumas. Seguramente recordaras que primero se debe multiplicar 3 por 5, mantener el 15 en tu memoria y después sumar el 2, dando como resultado el 17. El fenómeno que causa que algunos operadores actúen antes que otros es conocido como la jerarquía de prioridades. Python define la jerarquía de todos los operadores, y asume que los operadores de mayor jerarquía deben realizar sus operaciones antes que los de menor jerarquía. Entonces, si se sabe que la * tiene una mayor prioridad que la +, el resultado final debe de ser obvio.
El enlace de un operador determina el orden en que se computan las operaciones de los operadores con la misma prioridad, los cuales se encuentran dentro de una misma expresión. La mayoría de los operadores de Python tienen un enlazado hacia la izquierda, lo que significa que el cálculo de la expresión es realizado de izquierda a derecha.
Intenta calcular el valor que se calculará en la consola. ¿Cuál es el resultado de la función print()? Revisar 10.
Es justo que Python nos permita codificar literales, las cuales contengan valores numéricos y cadenas. Ya hemos visto que se pueden hacer operaciones aritméticas con estos números: sumar, restar, etc. Esto se hará una infinidad de veces en un programa. Pero es normal preguntar como es que se pueden almacenar los resultados de estas operaciones, para poder emplearlos en otras operaciones, y así sucesivamente. ¿Cómo almacenar los resultados intermedios, y después utilizarlos de nuevo para producir resultados subsecuentes? Python ayudará con ello. Python ofrece "cajas" (contenedores) especiales para este propósito, estas cajas son llamadas variables - el nombre mismo sugiere que el contenido de estos contenedores puede variar en casi cualquier forma. ¿Cuáles son los componentes o elementos de una variable en Python? Un nombre. Un valor (el contenido del contenedor). Comencemos con lo relacionado al nombre de la variable. Las variables no aparecen en un programa automáticamente. Como desarrollador, tu debes decidir cuantas variables deseas utilizar en tu programa. También las debes de nombrar. Si se desea nombrar una variable , se deben seguir las siguientes reglas: El nombre de la variable debe de estar compuesto por MAYUSCULAS, minúsculas, dígitos, y el carácter _ (guion bajo). El nombre de la variable debe comenzar con una letra. El carácter guion bajo es considerado una letra. Las mayúsculas y minúsculas se tratan de forma distinta (un poco diferente que en el mundo real - Alicia y ALICIA son el mismo nombre, pero en Python son dos nombres de variable distintos, subsecuentemente, son dos variables diferentes). El nombre de las variables no pueden ser igual a alguna de las palabras reservadas de Python (se explicará más de esto pronto).
Nota que la misma restricción aplica a los nombres de funciones. Python no impone restricciones en la longitud de los nombres de las variables, pero eso no significa que un nombre de variable largo sea mejor que uno corto. Aquí se muestran algunos nombres de variable que son correctos, pero que no siempre son convenientes: MiVariable, i, t34, Tasa_Cambio, contador, DiasParaNavidad, ElNomb reEsTanLargoQueSeCometeranErroresConEl, _. Además, Python permite utilizar no solo las letras latinas, sino caracteres específicos de otros idiomas que utilizan otros alfabetos. Estos nombres de variables también son correctos: Adiós_Señora, sûr_la_mer, Einbahnstraße, переменная. Ahora veamos algunos nombres incorrectos : 10t (no comienza con una letra), Tasa Cambio (contiene un espacio).
Consiste de dos simples instrucciones: La primera crea una variable llamada var, y le asigna un literal con un valor entero de 1. La segunda imprime el valor de la variable recientemente creada en la consola. Nota: print() tiene una función más, puede manejar variables también. ¿Puedes predecir cual será la salida (resultado) del código? Revisar 1
Se tiene permitido utilizar cuantas declaraciones de variables sean necesarias para lograr el objetivo del programa, por ejemplo: var = 1 balance_cuenta = 1000. nombreCliente = 'John Doe' print(var, balance_cuenta, nombreCliente) print(var) Sin embargo, no se permite utilizar una variable que no exista, (en otras palabras, una variable a la cual no se le a dado un valor). Este ejemplo ocasionara un error : var = 1 print(Var) Se ha tratado de utilizar la variable llamada Var, la cual no tiene ningún valor (nota: var y Var son entidades diferentes, y no tienen nada en común dentro de Python). RECUERDA Se puede utilizar print() para combinar texto con variables utilizando el operador + para mostrar cadenas con variables, por ejemplo: var = "3.7.1" print("Versión de Python: " + var) ¿Puedes predecir la salida del fragmento de código? Revisar Versión de Python: 3.7.
¿Cómo se le asigna un valor nuevo a una variable que ya ha sido creada? De la misma manera. Solo se necesita el signo de igual. El signo de igual es de hecho un operador de asignación. Aunque esto suene un poco extraño, el operador tiene una sintaxis simple y una interpretación clara y precisa. Asigna el valor del argumento de la derecha al de la izquierda, aun cuando el argumento de la derecha sea una expresión arbitraria compleja que involucre literales, operadores y variables definidas anteriormente. Observa el siguiente código: var = 1 print(var) var = var + 1 print(var) El código envía dos líneas a la consola: 1 2
La primera línea del código crea una nueva variable llamada var y le asigna el valor de 1. La declaración se lee de la siguiente manera: asigna el valor de 1 a una variable llamada var. De manera mas corta: asigna 1 a var. Algunos prefieren leer el código así: var se convierte en 1. La tercera línea le asigna a la misma variable un nuevo valor tomado de la variable misma, sumándole 1. Al ver algo así, un matemático probablemente protestaría, ningún valor puede ser igualado a si mismo más uno. Esto es una contradicción. Pero Python trata el signo = no como igual a , sino como asigna un valor. Entonces, ¿Cómo se lee esto en un programa? Toma el valor actual de la variable var, súmale 1 y guárdalo en la variable var. En efecto, el valor de la variable var ha sido incrementado por uno, lo cual no está relacionado con comparar la variable con otro valor. ¿Puedes predecir cuál será el resultado del siguiente fragmento de código? var = 100 var = 200 + 300 print(var) Revisar 500 - ¿Por qué? Bueno, primero, la variable var es creada y se le asigna el valor de 100. Después, a la misma variable se le asigna un nuevo valor: el resultado de sumarle 200 a 300, lo cual es 500.
Es tiempo de explicar el siguiente conjunto de operadores que harán la vida del programador/desarrollador más fácil. Muy seguido, se desea utilizar la misma variable al lado derecho y al lado izquierdo del operador =. Por ejemplo, si se necesita calcular una serie de valores sucesivos de la potencia de 2, se puede usar el siguiente código: x = x * 2 También, puedes utilizar una expresión como la siguiente si no puedes dormir y estas tratando de resolverlo con alguno de los métodos tradicionales: oveja = oveja + 1 Python ofrece una manera más corta de escribir operaciones como estas, lo cual se puede codificar de la siguiente manera: x *= 2 oveja+= 1 A continuación se intenta presentar una descripción general para este tipo de operaciones. Si op es un operador de dos argumentos (esta es una condición muy imporante) y el operador es utilizado en el siguiente contexto: variable = variable op expresión Puede ser simplificado de la siguiente manera: variable op= expresión Observa los siguientes ejemplos. Asegúrate de entenderlos todos. i = i + 2 * j ⇒ i += 2 * j
averylongvariablename m m 101 Del del Revisar my_var m 101 # incorrecto (comienza con un digito) averylongvariablename m m 101 # incorrecto (contiene un espacio) Del del # incorrecto (es una palabra clave) Ejercicio 3 ¿Cuál es el resultado del siguiente fragmento de código? a = '1' b = "1" print(a + b) Revisar 11 Ejercicio 4 ¿Cuál es el resultado del siguiente fragmento de código? a = 6 b = 3 a /= 2 * b print(a) Revisar
2 * b = 6 a = 6 → 6 / 6 = 1.
Quizá en algún momento será necesario poner algunas palabras en el código dirigidas no a Python, sino a las personas quienes estén leyendo el código con el fin de explicarles cómo es que funciona, o tal vez especificar el significado de las variables, también para documentar quien es el autor del programa y en qué fecha fue escrito. Un texto insertado en el programa el cual es, omitido en la ejecución , es denominado un comentario. ¿Cómo se colocan este tipo de comentarios en el código fuente? Tiene que ser hecho de cierta manera para que Python no intente interpretarlo como parte del código. Cuando Python se encuentra con un comentario en el programa, el comentario es completamente transparente, desde el punto de vista de Python, el comentario es solo un espacio vacío, sin importar que tan largo sea. En Python, un comentario es un texto que comienza con el símbolo # y se extiende hasta el final de la línea.
Si se desea colocar un comentario que abarca varias líneas, se debe colocar este símbolo en cada línea. Justo como el siguiente código:
a = 3. b = 4. c = (a ** 2 + b ** 2) ** 0.5 # se utiliza ** en lugar de la raíz cuadrada print("c =", c) Los desarrolladores buenos y responsables describen cada pieza importante de código , por ejemplo, el explicar el rol de una variable; aunque la mejor manera de comentar una variable es dándole un nombre que no sea ambiguo. Por ejemplo, si una variable determinada está diseñada para almacenar el área de un cuadrado, el nombre areaCuadrado será muchísimo mejor que tiaJuana. El primer nombre dado a la variable se puede definir como auto- comentable. Los comentarios pueden ser útiles en otro aspecto, se pueden utilizar para marcar un fragmento de código que actualmente no se necesita , cual sea la razón. Observa el siguiente ejemplo, sí se descomenta la línea resaltada, esto afectara la salida o resultado del código:
x = 1 y = 2
print(x + y) Esto es frecuentemente realizado cuando se está probando un programa, con el fin de aislar un fragmento de código donde posiblemente se encuentra un error.
Después se utiliza la función print() para mostrar los datos que se obtuvieron, con algunas observaciones adicionales. Intenta ejecutar el código y permite que la función te muestre lo que puede hacer.
La función input() puede hacer algo más: puede mostrar un mensaje al usuario sin la ayuda de la función print(). Se ha modificado el ejemplo un poco, observa el código: algo = input("Dime algo...") print("Mmm...", algo, "...¿En serio?") Nota: La función input() al ser invocada con un argumento, contiene una cadena con un mensaje. El mensaje será mostrado en consola antes de que el usuario tenga oportunidad de escribir algo. Después de esto input() hará su trabajo. Esta variante de la invocación de la función input() simplifica el código y lo hace más claro.
Se ha dicho antes, pero hay que decirlo sin ambigüedades una vez más: el resultado de la función input() es una cadena. Una cadena que contiene todos los caracteres que el usuario introduce desde el teclado. No es un entero ni un flotante. Esto significa que no se debe utilizar como un argumento para operaciones matemáticas , por ejemplo, no se pueden utilizar estos datos para elevarlos al cuadrado, para dividirlos entre algo o por algo. cualquierNumero = input("Inserta un número: ") algo = cualquierNumero ** 2. print(cualquierNumero, "al cuadrado es", algo)
Python ofrece dos simples funciones para especificar un tipo de dato y resolver este problema, aquí están: int() y float(). Sus nombres indican cual es su función: La función int() toma un argumento (por ejemplo, una cadena: int(string)) e intenta convertirlo a un valor entero; si llegase a fallar, el programa entero fallará también (existe una manera de solucionar esto, se explicará mas adelante). La función float() toma un argumento (por ejemplo, una cadena: float(string)) e intenta convertirlo a flotante (el resto es lo mismo). Esto es muy simple y muy efectivo. Sin embargo, estas funciones se pueden invocar directamente pasando el resultado de la función input() directamente. No hay necesidad de emplear variables como almacenamiento intermedio. Se ha implementado esta idea en el editor, observa el código. ¿Puedes imaginar como la cadena introducida por el usuario fluye desde la función input() hacía la función print()? Intenta ejecutar el código modificado. No olvides introducir un número valido. Prueba con diferentes valores, pequeños, grandes, negativos y positivos. El cero también es un buen valor a introducir.
El tener un equipo compuesto por input()-int()-float() abre muchas nuevas posibilidades. Eventualmente serás capaz de escribir programas completos, los cuales acepten datos en forma de números, los cuales serán procesados y se mostrarán los resultados.
Por supuesto, estos programas serán muy primitivos y no muy utilizables, debido a que no pueden tomar decisiones, y consecuentemente no son capaces de reaccionar acorde a cada situación. Sin embargo, esto no es un problema; se explicará cómo solucionarlo pronto.
Es tiempo de regresar a estos dos operadores aritméticos: + y *. Ambos tienen una función secundaría. Son capaces de hacer algo más que sumar y multiplicar. Los hemos visto en acción cuando sus argumentos son (flotantes o enteros). Ahora veremos que son capaces también de manejar o manipular cadenas, aunque, en una manera muy específica.
El sigo de + (más), al ser aplicado a dos cadenas, se convierte en un operador de concatenación : string + string Simplemente concatena (junta) dos cadenas en una. Además, puede ser utilizado más de una vez en una misma expresión. En contraste con el operador aritmético, el operador de concatenación no es conmutativo , por ejemplo, "ab" + "ba" no es lo mismo que "ba" + "ab". No olvides, si se desea que el signo + sea un concatenador , no un sumador, solo se debe asegurar que ambos argumentos sean cadenas. No se pueden mezclar los tipos de datos aquí. Este es un programa sencillo que muestra como funciona el signo + como concatenador: nom = input("¿Me puedes dar tu nombre por favor? ") ape = input("¿Me puedes dar tu apellido por favor? ") print("Gracias.") print("\nTu nombre es " + nom + " " + ape + ".") Nota: El utilizar + para concatenar cadenas te permite construir la salida de una manera más precisa, en comparación de utilizar únicamente la función print(), aún cuando se enriquezca con los argumentos end= y sep=. Ejecuta el código y comprueba si la salida es igual a tus predicciones.
El signo de * (asterisco), cuando es aplicado a una cadena y a un número (o a un número y cadena) se convierte en un operador de replicación. cadena * número número * cadena Replica la cadena el numero de veces indicado por el número. Por ejemplo: "James" * 3 nos da "JamesJamesJames". 3 * "an" nos da "ananan". 5 * "2" (o "2" * 5) da como resultado "22222" (no 10 ). RECUERDA Un número menor o igual que cero produce una cadena vacía. Este sencillo programa "dibuja" un rectángulo, haciendo uso del operador ( +), pero en un nuevo rol: print("+" + 10 * "-" + "+") print(("|" + " " * 10 + "|\n") * 5, end="")
Ejercicio 2 ¿Cuál es la salida esperada del siguiente código? x = input("Ingresa un número: ") # el usuario ingresa un 2 print(type(x)) Revisar