Modulo 2f
Modulo 2f
1 Sección 1 – El
Programa "¡Hola,
Mundo!"
Es hora de comenzar a escribir código real y funcional en Python. Por el momento será
muy sencillo.
Ejecuta el código en la ventana del editor a la derecha. Si todo sale bien, verás la línea
de texto en la ventana de consola.
Como alternativa, inicia IDLE, crea un nuevo archivo fuente de Python, coloca este
código, nombra el archivo y guárdalo. Ahora ejecútalo. Si todo sale bien, verás el texto
contenido entre comillas en la ventana de la consola IDLE. El código que has ejecutado
debería parecerte familiar. Viste algo muy similar cuando te guiamos a través de la
configuración del entorno IDLE.
1 print("¡Hola, Mundo!")
2
Console
Ahora dedicaremos un poco de tiempo para mostrarte y explicarte lo que estás viendo y
por que se ve así.
La palabra print ;
Un paréntesis de apertura;
Una comilla;
Una línea de texto: ¡Hola, Mundo! ;
Otra comilla;
Un paréntesis de cierre.
Cada uno de los elementos anteriores juega un papel muy importante en el código.
2.1.2 La función print()
1 print("¡Hola, Mundo!")
2
La palabra print que puedes ver aquí es el nombre de una función. Eso no significa que
dondequiera que aparezca esta palabra, será siempre el nombre de una función. El
significado de la palabra proviene del contexto en el cual se haya utilizado la palabra.
Probablemente hayas encontrado el término función muchas veces antes, durante las
clases de matemáticas. Probablemente también puedes recordar varios nombres de
funciones matemáticas, como seno o logaritmo.
Las funciones de Python, sin embargo, son más flexibles y pueden contener más que
sus parientes matemáticos.
Una función (en este contexto) es una parte separada del código de computadora el cual
es capaz de:
causar algún efecto (por ejemplo, enviar texto a la terminal, crear un archivo,
dibujar una imagen, reproducir un sonido, etc.); esto es algo completamente
inaudito en el mundo de las matemáticas.
evaluar un valor (por ejemplo, la raíz cuadrada de un valor o la longitud de un texto
dado) y devolverlo como el resultado de la función; esto es lo que hace que las
funciones de Python sean parientes de los conceptos matemáticos.
Además, muchas de las funciones de Python pueden hacer las dos cosas anteriores
juntas.
De Python mismo
De módulos
De tu código
Si vas a utilizar alguna función ya existente, no podrás modificar su nombre, pero cuando
comiences a escribir tus propias funciones, debes considerar cuidadosamente la
elección de nombres.
Un efecto;
Un resultado.
Las funciones matemáticas usualmente toman un argumento. por ejemplo, sen(x) toma
una x, que es la medida de un ángulo.
Las funciones de Python, por otro lado, son más versátiles. Dependiendo de las
necesidades individuales, pueden aceptar cualquier cantidad de argumentos - tantos
como sea necesario para realizar sus tareas. Nota: Cuando dijimos cualquier número,
eso incluye el cero - algunas funciones de Python no necesitan ningún argumento.
print("¡Hola, Mundo!")
Si deseas entregar uno o más argumentos a una función, colócalos dentro de los
paréntesis. Si vas a utilizar una función que no tiene ningún argumento, aún tiene que
tener los paréntesis.
Nota: para distinguir las palabras comunes de los nombres de funciones, coloca un par
de paréntesis vacíos después de sus nombres, incluso si la función correspondiente
requiere uno o más argumentos. Esta es una medida estándar.
print("¡Hola, Mundo!")
Como puedes ver, la cadena está delimitada por comillas - de hecho, las comillas
forman la cadena, recortan una parte del código y le asignan un significado diferente.
El nombre de la función (print en este caso) junto con los paréntesis y los argumento(s),
forman la invocación de la función.
1 print("¡Hola, Mundo!")
2
Discutiremos esto con más profundidad pronto, pero arrojemos un poco de luz sobre
esto ahora.
¿Qué sucede cuando Python encuentra una invocación como la que está a continuación?
function_name(argument)
Veamos:
LAB
Escenario
El comando print() , el cual es una de las directivas más sencillas de Python,
simplemente imprime una línea de texto en la pantalla.
En tu primer laboratorio:
Utiliza la función print() para imprimir la linea ¡Hola, Mundo! en la pantalla. Usa
comillas dobles alrededor de la cadena.
Habiendo hecho eso, usa la función print() nuevamente, pero esta vez imprime tu
nombre.
Elimina las comillas dobles y ejecuta tu código. Mira la reacción de Python. ¿Qué
tipo de error arroja?
Luego, elimina los paréntesis, vuelve a colocar las comillas dobles y ejecuta tu
código nuevamente. ¿Qué tipo de error arroja esta vez?
Experimenta todo lo que puedas. Cambia las comillas dobles a comillas simples,
usa múltiples funciones print() en la misma línea, y luego en diferentes líneas.
Mira qué pasa.
Console
Solución de muestra
2.1.6 La función print() y su efecto,
argumentos, y valores retornados
Cualquiera. Pronto te mostraremos que print() puede operar con prácticamente todos
los tipos de datos que ofrece Python. Cadenas, números, caracteres, valores lógicos,
objetos - cualquiera de estos se puede pasar con éxito a print() .
Por supuesto, cualquier programa complejo generalmente contiene muchas más instrucciones que
una. La pregunta es: ¿Cómo se acopla más de una instrucción en el código de Python?
Una línea puede estar vacía (por ejemplo, puede no contener ninguna instrucción) pero no debe
contener dos, tres o más instrucciones. Esto está estrictamente prohibido.
Nota: Python hace una excepción a esta regla - permite que una instrucción se extienda por más
de una línea (lo que puede ser útil cuando el código contiene construcciones complejas).
Vamos a expandir el código un poco, puedes verlo en el editor. Ejecútalo y observa lo que aparece
en la consola.
Console
Tu consola de Python ahora debería verse así:
Output
La Witsi Witsi Araña subió a su telaraña.
Vino la lluvia y se la llevó.
El programa invoca a la función print() dos veces, y puedes ver dos líneas
separadas en la consola - esto significa que print() comienza su salida desde una
nuevalínea cada vez que comienza su ejecución; puedes cambiar este
comportamiento, pero también puedes usarlo a tu favor;
Cada invocación de print() contiene una cadena diferente, como su argumento, y
el contenido de la consola lo refleja - esto significa que las instrucciones en el
código se ejecutan en el mismo orden en el que se han colocado en el archivo
fuente; no se ejecuta ninguna instrucción posterior hasta que se completa la
anterior (hay algunas excepciones a esta regla, pero puede ignorarlas por ahora.)
Hemos cambiado un poco el ejemplo - hemos agregado una invocación vacía de la función
print() . La llamamos vacía porque no hemos entregado ningún argumento a la función.
¿Qué sucede?
Output
La Witsi Witsi Araña subió a su telaraña.
Como puedes ver, la invocación vacía de print() no está tan vacía como podrías haber
esperado - genera una línea vacía o (esta interpretación también es correcta) genera una
nuevalínea.
Hay dos cambios muy sutiles - hemos insertado un par extraño de caracteres dentro del texto. Se
ven así: \n .
Console
La barra invertida ( \ ) tiene un significado muy especial cuando se usa dentro de cadenas - se
llama carácter de escape.
En En otras palabras, la barra invertida no significa nada en sí misma, sino que es solo una especie
de anuncio de que el siguiente carácter después de la barra invertida también tiene un significado
diferente.
Tanto la barra invertida como n forman un símbolo especial llamado un carácter de nuevalínea,
que insta a la consola a iniciar una nuevalínea de salida.
Ejecuta el código. Tu consola ahora debería verse así:
Output
La Witsi Witsi Araña
subió a su telaraña.
Vino la lluvia
y se la llevó.
Como se puede observar, aparecen dos nuevas líneas en la canción infantil, en los
lugares donde se ha utilizado \n .
1. Si deseas colocar solo una barra invertida dentro de una cadena, no olvides su
naturaleza de escape - tienes que duplicarla. Por ejemplo, una invocación como esta
provocará un error:
print("\")
print("\\")
2. No todos los pares de escape (la barra invertida junto con otro carácter) significan
algo.
Hay una invocación de la función print() , pero contiene tres argumentos. Todos ellos
son cadenas.
Los argumentos están separados por comas. Los hemos rodeado de espacios para
hacerlos más visibles, pero no es realmente necesario, y no lo haremos más.
En este caso, las comas al separar los argumentos juega un papel completamente
diferente al de la coma dentro de la cadena. El primero es parte de la sintaxis de Python,
mientras que el segundo está diseñado para mostrarse en la consola.
Si observas el código nuevamente, verás que hay no hay espacios dentro de las
cadenas.
Output
La Witsi Witsi Araña subió a su telaraña.
Los espacios, eliminados de las cadenas, han vuelto a aparecer. ¿Puedes explicar por
qué?
La función print() invocada con más de un argumento los muestra todos en una
sola línea.
La función print() pone un espacio entre los argumentos de salida por iniciativa
propia.
Ahora que sabes un poco sobre las costumbres de la función print() , te mostraremos
cómo cambiarlas.
Console
La forma en que estamos pasando los argumentos a la función print() es la más común
en Python, y se llama la forma posicional. Este nombre proviene del hecho de que el
significado del argumento está dictado por su posición (por ejemplo, el segundo
argumento se mostrará después del primero, no al revés).
El mecanismo se llama argumentos de palabras clave. El nombre proviene del hecho de que el
significado de estos argumentos se toma no de su ubicación (posición) sino de la palabra especial
(palabra clave) utilizada para identificarlos.
La función print() tiene dos argumentos de palabra clave que puedes usar para tus propósitos. El
primero se llama end .
En la ventana del editor puedes ver un ejemplo muy simple de cómo usar un argumento de palabra
clave.
Console
Output
Mi nombre es Python. Monty Python.
Como puedes ver, el argumento de palabra clave end determina los caracteres que la
función print() envía a la salida una vez que llega al final de sus argumentos
posicionales.
Si miras con atención, verás que hemos usado el argumento end , pero la cadena que se le asignó
está vacía (no contiene ningún carácter).
Console
Output
La cadena asignada al argumento de palabra clave end puede ser de cualquier longitud.
Experimenta con él si quieres.
Dijimos anteriormente que la función print() separa sus argumentos de salida con espacios. Este
comportamiento también se puede cambiar.
El argumento de palabra clave que puede hacer esto se denomina sep (como en separador).
Console
Output
Mi-nombre-es-Monty-Python.
La función print() ahora usa un guión, en lugar de un espacio, para separar los
argumentos de salida.
Nota: el valor del argumento sep también puede ser una cadena vacía. Pruébalo tu
mismo.
Ambos argumentos de palabra clave pueden mezclarse en una invocación, como aquí en la
ventana del editor.
Console
El ejemplo no tiene mucho sentido, pero presenta de forma visible las interacciones entre end y
sep .
Ahora que comprendes la función print() , estás listo para considerar cómo almacenar y procesar
datos en Python.
Escenario
Modifica la primera línea de código en el editor, usando las palabras claves reservadas
sep y end , para que se obtenga la salida esperada. Emplea dos funciones print() en el
editor.
Salida Esperada
Output
Programming***Essentials***in...Python
1 print("Programming","Essentials","in")
2 print("Python")
3
Console
Solución de muestra
LAB
Escenario
Te recomendamos encarecidamente que juegues con el código que hemos escrito para
y realiza algunos (quizás incluso destructivos) cambios. Siéntete libre de modificar
cualquier parte del código, pero hay una condición - aprende de tus errores y saca tus
propias conclusiones.
Intenta:
1
2
3 print(" *")
4 print(" * *")
5 print(" * *")
6 print(" * *")
7 print("*** ***")
8 print(" * *")
9 print(" * *")
10 print(" *****")
11
Console
Solución de muestra
7. Los argumentos posicionales son aquellos cuyo significado viene dictado por su
posición, por ejemplo, el segundo argumento se emite después del primero, el tercero
se emite después del segundo, etc.
8. Los argumentos de palabra clave son aquellos cuyo significado no está dictado por
su ubicación, sino por una palabra especial (palabra clave) que se utiliza para
identificarlos.
9. Los parámetros end y sep se pueden usar para dar formato la salida de la función
print() . El parámetro sep especifica el separador entre los argumentos emitidos. Por
ejemplo, print("H", "E", "L", "L", "O", sep="-") , mientras que el parámetro end
especifica que imprimir al final de la declaración de impresión.
Revisar
Revisar
1 print('Greg\'s book.')
2 print("'Greg's book.'")
3 print('"Greg\'s book."')
4 print("Greg\'s book.")
5 print('"Greg's book."')
6
Revisar
2.2 Sección 2 – Literales
de Python
Un literal se refiere a datos cuyos valores están determinados por el literal mismo.
Debido a que es un concepto un poco difícil de entender, un buen ejemplo puede ser
muy útil.
123
¿Puedes adivinar qué valor representa? Claro que puedes - es ciento veintitrés.
¿Representa algún valor? Tal vez. Puede ser el símbolo de la velocidad de la luz, por
ejemplo. También puede representar la constante de integración. Incluso la longitud de
una hipotenusa en el Teorema de Pitágoras. Existen muchas posibilidades.
1 print("2")
2 print(2)
3
Console
La primera línea luce familiar. La segunda parece ser errónea debido a la falta visible de
comillas.
Intenta ejecutarlo.
Vamos a tomar algo de tiempo para discutir literales numéricas y su vida interna.
2.2.2 Enteros
Quizá ya sepas un poco acerca de como las computadoras hacen cálculos con números.
Tal vez has escuchado del sistema binario, y como es que ese es el sistema que las
computadoras utilizan para almacenar números y como es que pueden realizar cualquier
tipo de operaciones con ellos.
Esta definición no es tan precisa, pero es suficiente por ahora. La distinción es muy
importante, y la frontera entre estos dos tipos de números es muy estricta. Ambos tipos
difieren significativamente en como son almacenados en una computadora y en el rango
de valores que aceptan.
Por ahora, dejemos los números flotantes a un lado (regresaremos a ellos pronto) y
analicemos como es que Python reconoce un número entero.
El proceso es casi como usar lápiz y papel - es simplemente una cadena de dígitos que
conforman el número. pero hay una condición - no se deben insertar caracteres que no
sean dígitos dentro del número.
Tomemos por ejemplo, el número once millones ciento once mil ciento once. Si tomaras
ahorita un lápiz en tu mano, escribirías el siguiente número: 11,111,111 , o así:
11.111.111 , incluso de esta manera: 11 111 111 .
Es claro que la separación hace que sea más fácil de leer, especialmente cuando el
número tiene demasiados dígitos. Sin embargo, Python no acepta estas cosas, está
prohibido. ¿Qué es lo que Python permite?. El uso de guion bajo en los literales
numéricos.*
Por lo tanto, el número se puede escribir ya sea así: 11111111 , o como sigue: 11_111_111 .
Nota *Python 3.6 ha introducido el guion bajo en los literales numéricos, permitiendo
colocar un guion bajo entre dígitos y después de especificadores de base para mejorar
la legibilidad. Esta característica no está disponible en versiones anteriores de Python.
1 print(0o123)
2
La segunda convención nos permite utilizar números en hexadecimal. Dichos números deben ser
precedidos por el prefijo 0x o 0X (cero-x).
0x123 es un número hexadecimal con un valor (decimal) igual a 291 . La función print() puede
manejar estos valores también. Intenta esto:
1 print(0x123)
2
Console
2.2.3 Flotantes
Ahora es tiempo de hablar acerca de otro tipo, el cual esta designado para representar y
almacenar los números que (como lo diría un matemático) tienen una parte decimal no
vacía.
Son números que tienen (o pueden tener) una parte fraccionaria después del punto
decimal, y aunque esta definición es muy pobre, es suficiente para lo que se desea
discutir.
Cuando se usan términos como dos y medio o menos cero punto cuatro, pensamos en
números que la computadora considera como números punto-flotante:
2.5
-0.4
Nota: dos punto cinco se ve normal cuando se escribe en un programa, sin embargo si
tu idioma nativo prefiere el uso de una coma en lugar de un punto, se debe asegurar que
el número no contenga comas.
Si se quiere utilizar solo el valor de dos punto cinco, se debe escribir como se mostró
anteriormente. Nota que: hay un punto entre el 2 y el 5, no una coma.
Como puedes imaginar, el valor de cero punto cuatro puede ser escrito en Python
como:
0.4
Pero no hay que olvidar esta sencilla regla - se puede omitir el cero cuando es el único
dígito antes del punto decimal.
En esencia, el valor 0.4 se puede escribir como:
.4
4.
Enteros vs Flotantes
El punto decimal es esencialmente importante para reconocer números punto-flotantes
en Python.
4
4.0
Se puede pensar que son idénticos, pero Python los ve de una manera completamente
distinta.
Por otro lado, no solo el punto hace que un número sea flotante. Se puede utilizar la letra
e .
Cuando se desea utilizar números que son muy pequeños o muy grandes, se puede
implementar la notación científica.
En Python, el mismo efecto puede ser logrado de una manera similar - observa lo
siguiente:
3E8
Nota:
Codificando Flotantes
Veamos ahora como almacenar números que son muy pequeños (en el sentido de que
están muy cerca del cero).
6.62607E-34
Nota: el hecho de que se haya escogido una de las posibles formas de codificación de
un valor flotante no significa que Python lo presentará de la misma manera.
0.0000000000000000000001
Cuando se corre en Python:
Output
1
2 print(0.0000000000000000000001)
este es el resultado:
Output
1e-22
Python siempre elige la presentación más corta del número, y esto se debe de tomar
en consideración al crear literales.
2.2.4 Cadenas
Las cadenas se emplean cuando se requiere procesar texto (como nombres de cualquier
tipo, direcciones, novelas, etc.), no números.
Ya conoces un poco acerca de ellos, por ejemplo, que las cadenas requieren comillas
así como los flotantes necesitan punto decimal.
Sin embargo, hay una cuestión. Cómo se puede codificar una comilla dentro de una
cadena que ya está delimitada por comillas.
¿Cómo se puede hacer esto sin generar un error? Existen dos posibles soluciones.
Nota: ¿Existen dos comillas con escape en la cadena - puedes observar ambas?
La segunda solución puede ser un poco sorprendente. Python puede utilizar una
apóstrofe en lugar de una comilla. Cualquiera de estos dos caracteres puede delimitar
una cadena, pero para ello se debe ser consistente.
Si se delimita una cadena con una comilla, se debe cerrar con una comilla.
Si se inicia una cadena con un apóstrofe, se debe terminar con un apóstrofe.
Codificando Cadenas
Ahora, la siguiente pregunta es: ¿Cómo se puede insertar un apóstrofe en una cadena la
cual está limitada por dos apóstrofes?
¿Sabes cómo hacerlo? Haz clic en Revisar a continuación para ver si tenías razón:
Ya se ha mostrado, pero se desea hacer énfasis en este fenómeno una vez mas: una
cadena puede estar vacía - puede no contener carácter alguno.
''
""
2.2.5 Valores Booleanos
No son tan obvios como los anteriores y se emplean para representar un valor muy
abstracto - la veracidad.
Cada vez que se le pregunta a Python si un número es más grande que otro, el resultado
es la creación de un tipo de dato muy específico - un valor booleano.
Nunca habrá una respuesta como: No lo sé o probablemente si, pero no estoy seguro.
True
False
No se pueden cambiar - se deben tomar estos símbolos como son, incluso respetando
las mayúsculas y minúsculas.
Console
LAB
Escenario
Escriba un fragmento de código de una línea, utilizando la función print() , así como los
caracteres de nuevalínea y de escape, para que coincida con el resultado esperado que
se muestra en la salida.
Salida Esperada
Output
"Estoy"
""aprendiendo""
"""Python"""
1
Console
Indirecta
1. Los literales son notaciones para representar valores fijos en el código. Python tiene
varios tipos de literales - es decir, un literal puede ser un número por ejemplo, 123 ), o
una cadena (por ejemplo, "Yo soy un literal.").
2. El sistema binario es un sistema numérico que emplea 2 como su base. Por lo tanto,
un número binario está compuesto por 0s y 1s únicamente, por ejemplo, 1010 es 10 en
decimal.
Los sistemas de numeración Octales y Hexadecimales son similares pues emplean 8 y
16 como sus bases respectivamente. El sistema hexadecimal utiliza los números
decimales más seis letras adicionales.
3. Los enteros (o simplemente int) son uno de los tipos numéricos que soporta Python.
Son números que no tienen una parte fraccionaria, por ejemplo, 256 , o -1 (enteros
negativos).
4. Los números punto-flotante (o simplemente flotantes) son otro tipo numérico que
soporta Python. Son números que contienen (o son capaces de contener) una parte
fraccionaria, por ejemplo, 1.27 .
5. Para codificar un apóstrofe o una comilla dentro de una cadena se puede utilizar el
carácter de escape, por ejemplo, 'I\'m happy.' , o abrir y cerrar la cadena utilizando un
conjunto de símbolos distintos al símbolo que se desea codificar, por ejemplo, "I'm
happy." para codificar un apóstrofe, y 'El dijo "Python", no "typhoon"' para codificar
comillas.
6. Los valores booleanos son dos objetos constantes True y False empleados para
representar valores de verdad (en contextos numéricos 1 es True , mientras que 0 es
False .
Extra
Existe un literal especial más utilizado en Python: el literal None . Este literal es llamado un
objeto de NoneType , y puede ser utilizado para representar la ausencia de un valor.
Pronto se hablará más acerca de ello.
2.2.8 CUESTIONARIO DE SECCIÓN
Revisar
Revisar
Pregunta 3: ¿Cuál es el valor decimal del siguiente número binario?
1011
Revisar
2.3 Sección 3 –
Operadores -
herramientas de
manipulación de datos
1 print(2+2)
2
Console
Deberías de ver el número cuatro. Tómate la libertad de experimentar con otros operadores.
Sin tomar esto con mucha seriedad, has descubierto que Python puede ser utilizado como una
calculadora. No una muy útil, y definitivamente no una de bolsillo, pero una calculadora sin duda
alguna.
Tomando esto más seriamente, nos estamos adentrado en el terreno de los operadores y
expresiones.
Sin embargo, no todos los operadores de Python son tan simples como el signo de más,
veamos algunos de los operadores disponibles en Python, las reglas que se deben
seguir para emplearlos, y como interpretar las reglas que realizan.
Se comenzará con los operadores que están asociados con las operaciones aritméticas
más conocidas:
+
-
*
/
//
%
**
Exponenciación
Observa los ejemplos en la ventana del editor:
1 print(2 ** 3)
2 print(2 ** 3.)
3 print(2. ** 3)
4 print(2. ** 3.)
5
Console
Nota: En los ejemplos, los dobles asteriscos están rodeados de espacios, no es
obligatorio hacerlo pero hace que el código sea mas legible.
Ejecuta el código y observa cuidadosamente los resultados que arroja. ¿Puedes observar
algo?
Recuerda: Es posible formular las siguientes reglas con base en los resultados:
Multiplicación
Un símbolo de * (asterisco) es un operador de multiplicación.
1 print(2 * 3)
2 print(2 * 3.)
3 print(2. * 3)
4 print(2. * 3.)
5
Console
División
1 print(6 / 3)
2 print(6 / 3.)
3 print(6. / 3)
4 print(6. / 3.)
5
Console
1 print(6 // 3)
2 print(6 // 3.)
3 print(6. // 3)
4 print(6. // 3.)
5
Console
Como se puede observar, una división de entero entre entero da un resultado entero.
Todos los demás casos producen flotantes.
1 print(6 // 4)
2 print(6. // 4)
3
Console
El resultado de la división entera siempre se redondea al valor entero inferior mas cercano del
resultado de la división no redondeada.
Esto es muy importante: el redondeo siempre va hacia abajo.
1 print(-6 // 4)
2 print(6. // -4)
3
Console
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 .
Note
La division entera también se le suele llamar en inglés floor division. Más adelante te
cruzarás con este término.
Residuo (módulo)
El siguiente operador es uno muy peculiar, porque no tiene un equivalente dentro de los
operadores aritméticos tradicionales.
Piensa en el como una diagonal (operador de división) acompañado por dos pequeños
círculos.
En otras palabras, es el valor que sobra después de dividir un valor entre otro para
producir un resultado entero.
1 print(14 % 4)
2
Console
1 print(12 % 4.5)
2
¿Cuál es el resultado?
Revisar
Como no dividir
No intentes:
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.
1 print(-4 + 4)
2 print(-4. + 8)
3
Console
Esta es una gran oportunidad para mencionar una distinción muy importante entre operadores
unarios y binarios.
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 ultima línea de
código del siguiente fragmento:
1 print(-4 - 4)
2 print(4. - 8)
3 print(-1.1)
4
Console
Por cierto: también hay un operador + unario. Se puede utilizar de la siguiente manera:
1 print(+2)
2
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.
2 + 3 * 5
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
1 print(9 % 6 % 2)
2
1 print(9 % 6 % 2)
2
Console
El resultado debe ser 1 . El operador tiene un enlazado del lado izquierdo. Pero hay una
excepción interesante.
Repite el experimento, pero ahora con exponentes.
1 print(2 ** 2 ** 3)
2
Console
2 ** 2 → 4 ; 4 ** 3 → 64
2 ** 3 → 8 ; 2 ** 8 → 256
El resultado muestra claramente que el operador de exponenciación utiliza enlazado del lado
derecho.
Revisar
Lista de prioridades
Como eres nuevo a los operadores de Python, no se presenta por ahora una lista
completa de las prioridades de los operadores.
Prioridad Operador
1 **
3 * , / , // , %
4 + , - binario
Nota: se han enumerado los operadores en orden de la más alta (1) a la más baja (4)
prioridad.
Intenta solucionar la siguiente expresión:
Revisar
Operadores y paréntesis
Por supuesto, se permite hacer uso de paréntesis, lo cual cambiará el orden natural del
cálculo de la operación.
De acuerdo con las reglas aritméticas, las sub-expresiones dentro de los paréntesis
siempre se calculan primero.
Se pueden emplear tantos paréntesis como se necesiten, y seguido son utilizados para
mejorar la legibilidad de una expresión, aun si no cambian el orden de las operaciones.
Revisar
2.3.4 RESUMEN DE SECCIÓN
Puntos Clave
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 .
8. Los operadores de exponenciación utilizan enlazado del lado derecho, por ejemplo,
2 ** 2 ** 3 = 256 .
Revisar
Revisar
Revisar
2.4 Sección 4 – 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.
Python ayudará con ello. Python ofrece "cajas" (o "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.
Un nombre;
Un valor (el contenido del
contenedor)
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.
Note
Los nombres de las variables deben estar en minúsculas, con palabras separadas
por guiones bajos para mejorar la legibilidad (por ejemplo, var , my_variable )
Los nombres de las funciones siguen la misma convención que los nombres de las
variables (por ejemplo, fun , my_function )
También es posible usar letras mixtas (por ejemplo, myVariable ), pero solo en
contextos donde ese ya es el estilo predominante, para mantener la compatibilidad
retroactiva con la convención adoptada.
Palabras Clave
Observa las palabras que juegan un papel muy importante en cada programa de Python.
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def',
'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in',
'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with',
'yield']
Son llamadas palabras clave o (mejor dicho) palabras clave reservadas. Son
reservadas porque no se deben utilizar como nombres: ni para variables, ni para
funciones, ni para cualquier otra cosa que se desee crear.
import
No se puede tener una variable con ese nombre - esta prohibido. pero se puede hacer lo
siguiente:
Import
Estas palabras podrían parecer un misterio ahorita, pero pronto se aprenderá acerca de
su significado.
Cualquier cosa.
RECUERDA
1 var = 1
2 print(var)
3
Console
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.
Como puedes ver, print() tiene otro lado: también puede manejar variables. ¿Sabes
cuál será el resultado del fragmento? Ejecuta el código para verificar.
1 var = 1
2 account_balance = 1000.0
3 client_name = 'John Doe'
4 print(var, account_balance, client_name)
5 print(var)
6
Console
Sin embargo, no se permite utilizar una variable que no exista, (en otras palabras, una
variable a la cual no se le ha dado un valor).
1 var = 1
2 print(Var)
3
Console
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:
1 var = "3.8.5"
2 print("Python version: " + var)
3
Revisar
2.4.5 Cómo asignar un nuevo valor 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.
1 var = 1
2 print(var)
3 var = var + 1
4 print(var)
5
6
Console
La primer línea del código crea una nueva variable llamada var y le asigna el valor de
1.
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.
1 var = 100
2 var = 200 + 300
3 print(var)
4
Revisar
2.4.6 Resolviendo problemas
matemáticos simples
Ahora deberías poder construir un programa corto que resuelva problemas matemáticos
simples como el teorema de Pitágoras:
El siguiente código evalúa la longitud de la hipotenusa (es decir, el lado más largo de un
triángulo rectángulo, el opuesto al ángulo recto) usando el teorema de Pitágoras:
1 a = 3.0
2 b = 4.0
3 c = (a ** 2 + b ** 2) ** 0.5
4 print("c =", c)
5
Nota: necesitamos hacer uso del operador ** para evaluar la raíz cuadrada como:
√ (x) = x(½)
y
c = √ a2 + b2
¿Puedes adivinar la salida del código?
Revisar
LAB
Escenario
A continuación una historia:
Érase una vez en la Tierra de las Manzanas, Juan tenía tres manzanas, María tenía cinco
manzanas, y Adán tenía seis manzanas. Todos eran muy felices y vivieron por muchísimo
tiempo. Fin de la Historia.
Tu tarea es:
Console
Solución de muestra
2.4.8 Operadores Abreviados
1 x = x * 2
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:
1 sheep = sheep + 1
2
Python ofrece una manera más corta de escribir operaciones como estas, lo cual se
puede codificar de la siguiente manera:
1 x *= 2
2 sheep += 1
3
i = i + 2 * j i += 2 * j
x = x ** 2 x **= 2
LAB
Escenario
Millas a kilómetros;
Kilómetros a millas.
No se debe cambiar el código existente. Escribe tu código en los lugares indicados con
### . Prueba tu programa con los datos que han sido provistos en el código fuente.
Pon mucha atención a lo que esta ocurriendo dentro de la función print() . Analiza como
es que se proveen múltiples argumentos para la función, y como es que se muestra el
resultado.
Nota que algunos de los argumentos dentro de la función print() son cadenas (por
ejemplo, "millas son" , y otros son variables (por ejemplo, miles ).
Consejo
Hay una cosa interesante más que esta ocurriendo. ¿Puedes ver otra función dentro de
la función print() ? Es la función round() . Su trabajo es redondear la salida del
resultado al número de decimales especificados en el paréntesis, y regresar un valor
flotante (dentro de la función round() se puede encontrar el nombre de la variable, el
nombre, una coma, y el número de decimales que se desean mostrar). Se hablará más
de esta función muy pronto, no te preocupes si no todo queda muy claro. Solo se quiere
impulsar tu curiosidad.
Salida Esperada
Output
7.38 millas son 11.88 kilómetros
12.25 kilómetros son 7.61 millas
1 kilometers = 12.25
2 miles = 7.38
3
4 miles_to_kilometers = ###
5 kilometers_to_miles = ###
6
7 print(miles, "millas son", round(miles_to_kilometers, 2), "kilómetros")
8 print(kilometers, "kilómetros son", round(kilometers_to_miles, 2), "millas")
9
Console
Solución de muestra
LAB
Observa el código en el editor: lee un valor float , lo coloca en una variable llamada x ,
e imprime el valor de la variable llamada y . Tu tarea es completar el código para evaluar
la siguiente expresión:
3x3 - 2x2 + 3x - 1
Mantén tu código limpio y legible, y pruébalo utilizando los datos que han sido
proporcionados. No te desanimes por no lograrlo en el primer intento. Se persistente y
curioso.
Output
x = 0
x = 1 y = -1.0
x = -1 y = 3.0
y = -9.0
Solución de muestra
1 var = 2
2 print(var)
3
4 var = 3
5 print(var)
6
7 var += 1
8 print(var)
9
1 var = "007"
2 print("Agent " + var)
3
2.4.12 CUESTIONARIO DE SECCIÓN
1 var = 2
2 var = 3
3 print(var)
4
3
my_var
101
averylongVariablename
m101
m 101
Del
del
1 a = '1'
2 b = "1"
3 print(a + b)
4
11
Error
1 a = 6
2 b = 3
3 a /= 2 * b
4 print(a)
5
1.0
6.0
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 como es que funciona, o tal vez especificar el significado de las variables,
también para documentar quien es el autor del programa y en que fecha fue escrito.
¿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.
Si se desea colocar un comentario que abarca varias líneas, se debe colocar este
símbolo en cada línea. Justo como en el siguiente código:
Por ejemplo, si una variable determinada esta diseñada para almacenar el área de un
cuadrado, el nombre square_area será muchísimo mejor que aunt_jane .
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:
Consejo
Si deseas comentar o descomentar rápidamente varias línea(s) de código, selecciona las líneas
que deseas modificar y utiliza el siguiente método abreviado de teclado: CTRL + / (Windows) or
CMD + / (Mac OS). Es un truco muy útil, ¿no? Ahora experimenta con el código en el editor.
1 # uncomment_me = 1
2 # uncomment_me_too = 3
3 # uncomment_me_also = 5
4
5 print(uncomment_me, uncomment_me_too, uncomment_me_also, sep="\n")
6
Console
LAB
Escenario
El código en el editor contiene comentarios. Intenta mejorarlo: agrega o quita comentarios donde
consideres que sea apropiado (en ocasiones el remover un comentario lo hace mas legible), y
cambia el nombre de las variables donde consideres que esto mejorará la comprensión del código.
Nota
Los comentarios son muy importantes. No solo hacen que el programa sea más fácil de entender,
pero también sirven para deshabilitar aquellas partes de código que no son necesarias (por
ejemplo, cuando se necesita probar cierta parte del código, e ignorar el resto). Los buenos
programadores describen cada parte importante del código, y dan nombres significativos a
variables, debido a que en ocasiones es mucho más sencillo dejar el comentario dentro del código
mismo.
Una cosa mas: puede ocurrir que un comentario contenga una pieza de información incorrecta o
errónea - ¡nunca se debe de hacer eso a propósito!
Console
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 length y width son una mejor elección que myvar1 y myvar2 .
4. Es importante utilizar los comentarios para que los programas sean más fáciles de
entender, además de emplear variables legibles y significativas en el código. Sin
embargo, es igualmente importante no utilizar nombres de variables que sean
confusos, o dejar comentarios que contengan información incorrecta.
5. Los comentarios pueden ser muy útiles cuando tú estás leyendo tu propio código
después de un tiempo (es común que los desarrolladores olviden lo que su propio
código hace), y cuando otros están leyendo tu código (les puede ayudar a
comprender que es lo que hacen tus programas y como es que lo hacen).
2.5.5 CUESTIONARIO DE SECCIÓN
1 # print("Cadena #1")
2 print("Cadena #2")
3
Revisar
1 #Este es
2 un comentario
3 multilínea.#
4
5 print("¡Hola!")
6
Revisar
2.6 Sección 6 –
Interacción con el
usuario
Ahora se introducirá una nueva función, la cual pareciese ser un reflejo de la función
print() .
La función input() es capaz de leer datos que fueron introducidos por el usuario y pasar
esos datos al programa en ejecución.
El programa entonces puede manipular los datos, haciendo que el código sea
verdaderamente interactivo.
Todos los programas leen y procesan datos. Un programa que no obtiene datos de
entrada del usuario es un programa sordo.
Observa el ejemplo:
Nota:
El programa solicita al usuario que inserte algún dato desde la consola (seguramente
utilizando el teclado, aunque también es posible introducir datos utilizando la voz o alguna
imagen);
La función input() es invocada sin argumentos (es la manera mas sencilla de utilizar la
función); la función pondrá la consola en modo de entrada; aparecerá un cursor que
parpadea, y podrás introducir datos con el teclado, al terminar presiona la tecla Enter; todos
los datos introducidos serán enviados al programa a través del resultado de la función;
Nota: el resultado debe ser asignado a una variable; esto es crucial, si no se hace los datos
introducidos se perderán;
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 otra cosa: puede avisar al usuario sin ninguna ayuda de
print() .
Nota:
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.
Console
La última línea lo explica todo, se intentó aplicar el operador ** a 'str' (una cadena)
acompañado por un 'float' .
Esto debe de ser obvio. ¿Puedes predecir el valor de "ser o no ser" elevado a la
potencia 2 ?
¿Habremos llegado a un punto muerto? ¿Existirá alguna solución? Claro que la hay.
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.
¿Puedes imaginar como la cadena introducida por el usuario fluye desde la función input() hacía
la función print() ?
Prueba con diferentes valores, pequeños, grandes, negativos y positivos. El cero también es un
buen valor a introducir.
Console
2.6.6 Más sobre input() y conversión de
tipo
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.
El siguiente ejemplo hace referencia al programa anterior que calcula la longitud de la hipotenusa.
Vamos a reescribirlo, para que pueda leer las longitudes de los catetos desde la consola.
Console
Este programa le preguntó al usuario los dos catetos, calcula la hipotenusa e imprime el resultado.
Ejecútalo de nuevo e intenta introducir valores negativos.
Toma en cuenta que en el programa que puede ver en el editor, la variable hypo se usa con un
solo propósito - guardar el valor calculado entre la ejecución de la línea de código contigua.
Debido a que la función print() acepta una expresión como argumento, se puede quitar la
variable del código.
Console
2.6.7 Operadores cadena
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, no hay
diferencia).
Ahora veremos que son capaces también de manejar o manipular cadenas, aunque, en
una manera muy específica.
1 string + string
2
Simplemente concatena (junta) dos cadenas en una. Por supuesto, puede ser utilizado
más de una vez en una misma expresión, y en tal contexto se comporta con enlazado del
lado izquierdo.
Console
Nota: el usar + para concatenar cadenas te permite construir la salida de una manera más precisa
que con una función print() pura, incluso si está enriquecida con end= y sep= argumentos de
palabras clave.
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:
1 string * number
2 number * string
3
Replica la cadena el numero de veces indicado por el número.
Por ejemplo:
Recuerda
Este sencillo programa "dibuja" un rectángulo, haciendo uso del antiguo operador ( + ) en un nuevo
rol:
Console
Toma en cuenta la forma en que hemos usado los paréntesis en la segunda línea del código.
str()
A estas alturas ya sabes como emplear las funciones int() y float() para convertir una
cadena a un número.
1 str(number)
2
Sinceramente, puede hacer mucho más que transformar números en cadenas, eso lo
veremos después.
Console
Se ha modificado un poco para mostrar cómo es que la función str() trabaja. Gracias a esto,
podemos pasar el resultado entero a la función print() como una sola cadena, sin utilizar las
comas.
Ya conoces los tipos de datos básicos y un conjunto de operadores fundamentales. Sabes cómo
organizar la salida y cómo obtener datos del usuario. Estos son fundamentos muy sólidos para el
Módulo 3. Pero antes de pasar al siguiente módulo, hagamos unos cuantos laboratorios y
resumamos todo lo que has aprendido en esta sección.
LAB
Escenario
Tu tarea es completar el código para evaluar los resultados de cuatro operaciones aritméticas
básicas.
Es posible que no puedas proteger el código de un usuario que quiera dividir entre cero. Está bien,
no te preocupes por eso por ahora.
Console
Indirecta
LAB
Escenario
Tu tarea es completar el código para poder evaluar la siguiente expresión:
Puedes utilizar variables adicionales para acortar la expresión (sin embargo, no es muy
necesario). Prueba tu código cuidadosamente.
Datos de Prueba
Output
1
y = 0.6000000000000001
Output
10
y = 0.09901951266867294
Entrada de muestra: Salida esperada:
Output
100
y = 0.009999000199950014
Output
-5
y = -0.19258202567760344
Console
Solución de muestra
LAB
Escenario
Por ejemplo, si el evento comienza a las 12:17 y dura 59 minutos, terminará a las 13:16.
Prueba el código cuidadosamente. Pista: utilizar el operador % puede ser clave para el
éxito.
Datos de Prueba
Entrada de muestra: Salida Esperada:
Output
12
17 13:16
59
Output
23
58 10:40
642
Output
0
1 1:0
2939
Console
Indirecta
1. La función print() envía datos a la consola, mientras que la función input() obtiene
datos de la consola.
4. El resultado de la función input() es una cadena. Se pueden unir cadenas unas con
otras a través del operador de concatenación ( + ). Observa el siguiente código:
Revisar
Pregunta 2: ¿Cuál es el resultado esperado del siguiente fragmento?
Revisar
2.7 Finalización del
Módulo 2 - QUIZ DEL
MÓDULO
¡Bien hecho! Has llegado al final del Módulo 2 y has completado un paso importante en
tu educación de programación en Python. Aquí hay un breve resumen de los objetivos
que has cubierto y con los que te has familiarizado en el Módulo 2:
Có ibi j t i l P th
Cómo escribir
Qué son y ejecutar
los literales, programas
operadores simples en Python;
y expresiones en Python;
Qué son las variables y cuáles son las reglas que las gobiernan;
Cómo realizar operaciones básicas de entrada y salida.
Ahora estás listo para realizar la prueba del módulo, que te ayudará a evaluar lo que has
aprendido hasta ahora.
La siguiente prueba se basa en lo que acabas de aprender. Hay veinte preguntas en total
y debes obtener al menos un 70 % para aprobar.
¡Buena suerte!
Pregunta 1
El dígrafo \n obliga a la función print() a:
detener su ejecución
Pregunta 2
El significado del parámetro de palabra clave está determinado por:
es valioso
Pregunta 3
El valor veinte punto doce por diez elevado a la potencia de ocho debe escribirse
como:
20.12E8
20.12*10^8
20.12E8.0
20E12.8
Pregunta 4
El prefijo 0o significa que el número que le sigue se denota como:
octal
binario
decimal
hexadecimal
Pregunta 5
El operador ** :
realiza exponenciación
no existe
Pregunta 6
El resultado de la siguiente división:
1 / 1
es igual a 1.0
es igual a 1
no se puede predecir
Pregunta 7
¿Cuáles de las siguientes afirmaciones son verdaderas? (Selecciona dos respuestas)
El argumento a la derecha del operador % no puede ser cero.
Pregunta 8
El enlazado del lado izquierdo determina el resultado de la siguiente expresión:
1 // 2 * 3
es igual a:
0
4.5
0.0
0.16666666666666666
Pregunta 9
¿Cuáles de los siguientes nombres de variables son ilegales? (Selecciona dos
respuestas)
True
and
true
TRUE
Pregunta 10
La función print() puede imprimir:
solo un argumento
1 x = 1
2 y = 2
3 z = x
4 x = y
5 y = z
6 print(x, y)
7
2 1
1 2
1 1
2 2
Pregunta 12
¿Cuál es el resultado del siguiente fragmento si el usuario ingresa dos líneas que
contienen 2 y 4 respectivamente?
1 x = input()
2 y = input()
3 print(x + y)
4
6
24
4
2
Pregunta 13
¿Cuál es el resultado del siguiente fragmento de código si el usuario ingresa dos líneas
que contienen 2 y 4 respectivamente?
1 x = int(input())
2 y = int(input())
3
4 x = x // y
5 y = y // x
6
7 print(y)
8
2.0
8.0
4.0
Pregunta 14
¿Cuál es el resultado del siguiente fragmento si el usuario ingresa dos líneas que
contienen 2 y 4 respectivamente?
1 x = int(input())
2 y = int(input())
3
4 x = x / y
5 y = y / x
6
7 print(y)
8
4.0
2.0
Pregunta 15
¿Cuál es el resultado del siguiente fragmento si el usuario ingresa dos líneas que
contienen 11 y 4 respectivamente?
1 x = int(input())
2 y = int(input())
3
4 x = x % y
5 x = x % y
6 y = y % x
7
8 print(y)
9
1
2
3
4
Pregunta 16
¿Cuál es el resultado del siguiente fragmento si el usuario ingresa dos líneas que
contienen 3 y 6 respectivamente?
1 x = input()
2 y = int(input())
3
4 print(x * y)
5
36
18
666
333333
Pregunta 17
¿Cuál es el resultado del siguiente fragmento?
1 z = y = x = 1
2 print(x, y, z, sep='*')
3
x y z
x*y*z
1 1 1
1*1*1
Pregunta 18
¿Cuál es el resultado del siguiente fragmento?
1 y = 2 + 3 * 5.
2 print(Y)
3
17
25.
17.0
Pregunta 19
¿Cuál es el resultado del siguiente fragmento?
1 x = 1 / 2 + 3 // 3 + 4 ** 2
2 print(x)
3
17
17.5
8.5
8
Pregunta 20
¿Cuál es el resultado del siguiente fragmento si el usuario ingresa dos líneas que
contienen 2 y 4 respectivamente?
1 x = int(input())
2 y = int(input())
3
4 print(x + y)
5
2
24
6
4