Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Programacion en python, Apuntes de Programación Informática

Programacion en python enfocado con cisco

Tipo: Apuntes

2019/2020

Subido el 20/09/2021

usuario desconocido
usuario desconocido 🇧🇴

1 / 16

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Operadores aritméticos: división entera
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.
Operadores: residuo (módulo)
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?
Revisar
Operadores: como no dividir
Como probablemente sabes, ladivisión entre cero no funciona.
No intentes:
Dividir entre cero.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Vista previa parcial del texto

¡Descarga Programacion en python y más Apuntes en PDF de Programación Informática solo en Docsity!

Operadores aritméticos: división entera

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.

Operadores: residuo (módulo)

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?

Revisar

Operadores: como no dividir

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.

Operadores: suma

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 operador de resta, operadores unarios y

binarios

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?

Operadores y sus prioridades

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.

Operadores y sus enlaces

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.

Puntos Clave

  1. Una expresión es una combinación de valores (o variables, operadores, llamadas a funciones, aprenderás de ello pronto) las cuales son evaluadas y dan como resultado un valor, por ejemplo, 1+2.
  2. Los operadores son símbolos especiales o palabras clave que son capaces de operar en los valores y realizar operaciones matemáticas, por ejemplo, el * multiplica dos valores: x*y.
  3. Los operadores aritméticos en Python: + (suma), - (resta), * (multiplicación), / (división clásica: regresan un flotante si uno de los valores es de este tipo), % (módulo: divide el operando izquierdo entre el operando derecho y regresa el residuo de la operación, por ejemplo, 5%2=1), ** (exponenciación: el operando izquierdo se eleva a la potencia del operando derecho, por ejemplo, 23=222=8), // (división entera: retorna el numero resultado de la división, pero redondeado al numero entero inferior más cercano, por ejemplo, 3//2.0=1.0).
  4. Un operador unario es un operador con solo un operando, por ejemplo, -1, o +3.
  5. Un operador binario es un operador con dos operados, por ejemplo, 4+5, o 12%5.
  6. Algunos operadores actúan antes que otros, a esto se le llama
  • jerarquía de prioridades :  Unario + y - tienen la prioridad más alta.  Después: , después: , /, y %, y después la prioridad más baja: binaria + y -. 7. Las sub-expresiones dentro de paréntesis siempre se calculan primero, por ejemplo, 15-1(5(1+2))=0. 8. Los operadores de exponenciación utilizan enlazado hacia la derecha , por ejemplo, 223=256. Ejercicio 1 ¿Cuál es la salida del siguiente fragmento de código? print((24), (24.), (24)) Revisar 16 8.0 8 Ejercicio 2 ¿Cuál es la salida del siguiente fragmento de código? print((-2/4), (2/4), (2//4), (-2//4)) Revisar -0.5 0.5 0 - Ejercicio 3 ¿Cuál es la salida del siguiente fragmento de código? print((2%-4), (2%4), (23*2)) Revisar -2 2 512

¿Qué son las Variables?

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).

Nombres correctos e incorrectos de variables

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

Utilizando variables

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.

Asignar un valor nuevo a una variable ya

existente

¿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.

Operadores Abreviados

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.

Poner comentarios en el código: ¿por qué,

¿cuándo y dónde?

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:

Este programa calcula la hipotenusa (c)

a y b son las longitudes de los catetos

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:

Este es un programa de prueba

x = 1 y = 2

y = y + x

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.

Puntos Clave

  1. Los comentarios pueden ser utilizados para colocar información adicional en el código. Son omitidos al momento de la ejecución. Dicha información es para los lectores que están manipulando el código. En Python, un comentario es un fragmento de texto que comienza con un #. El comentario se extiende hasta el final de la línea.
  2. Si deseas colocar un comentario que abarque varias líneas, es necesario colocar un # al inicio de cada línea. Además, se puede utilizar un comentario para marcar un fragmento de código que no es necesaria en el momento y no se desea ejecutar. (observa la ultima línea de código del siguiente fragmento), por ejemplo:

    Este programa imprime

    un saludo en pantalla

    print("Hola!") # Se invoca la función print() function

    print("Soy Python.")

  3. Cuando sea posible, se deben auto comentar los nombres de las variables, por ejemplo, si se están utilizando dos variables para almacenar la altura y longitud de algo, los nombres altura y longitud son una mejor elección que mivar1 y mivar2.
  4. Es importante utilizar los comentarios para que los programas sean más fáciles de entender, además de emplear variables legibles y

 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() con un argumento

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.

El resultado de la función input()

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)

Conversión de datos o casting

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.

Más acerca de la función input() y tipos de

conversión

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.

Operadores de cadenas - introducción

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.

Concatenación

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.

Replicación

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