Modulo 2 - Python
Modulo 2 - Python
Módulo 2
Tipos de datos, variables, operaciones básicas de entrada y salida, operadores básicos
¡Hola, Mundo!
Es hora de comenzar a escribir código real y funcional en Python. Por el momento será muy sencillo.
Como se muestran algunos conceptos y términos fundamentales, estos fragmentos de código no serán complejos ni difíciles.
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.
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.
La función print()
Observa la línea de código a continuación:
print("¡Hola, Mundo!")
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.
El nombre de la función debe ser significativo (el nombre de la función print es evidente), imprime en la terminal.
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.
La función print()
Como se dijo anteriormente, una función puede tener:
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 número de
argumentos, tantos como sea necesario para realizar sus tareas. Nota: algunas funciones de Python no necesitan ningún argumento.
print("¡Hola, Mundo!")
A pesar del número de argumentos necesarios o proporcionados, las funciones de Python demandan fuertemente la presencia de un par de paréntesis - el
de apertura y de cierre, respectivamente.
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.
La función print()
El único argumento entregado a la función print() en este ejemplo es una cadena:
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.
Podemos imaginar que las comillas significan algo así: el texto entre nosotros no es un código. No está diseñado para ser ejecutado, y se debe tomar tal
como está.
Casi cualquier cosa que ponga dentro de las comillas se tomará de manera literal, no como código, sino como datos. Intenta jugar con esta cadena en
particular - puedes modificarla. Ingresa contenido nuevo o borra parte del contenido existente.
Existe más de una forma de como especificar una cadena dentro del código de Python, pero por ahora, esta será suficiente.
Hasta ahora, has aprendido acerca de dos partes importantes del código - la función y la cadena. Hemos hablado de ellos en términos de sintaxis, pero
ahora es el momento de discutirlos en términos de semántica.
La función print()
El nombre de la función (print en este caso) junto con los paréntesis y los argumentos, forman la invocación de la función.
Discutiremos esto en mayor profundidad más adelante, pero por lo pronto, arrojaremos un poco más de luz al asunto.
print("¡Hola, Mundo!")
¿Qué sucede cuando Python encuentra una invocación como la que está a continuación?
nombre_función(argumento)
Veamos:
Primero, Python comprueba si el nombre especificado es legal (explora sus datos internos para encontrar una función existente del nombre; si
esta búsqueda falla, Python cancela el código).
En segundo lugar, Python comprueba si los requisitos de la función para el número de argumentos le permiten invocar la función de esta manera
(por ejemplo, si una función específica exige exactamente dos argumentos, cualquier invocación que entregue solo un argumento se considerará
errónea y abortará la ejecución del código).
Tercero, Python deja el código por un momento y salta dentro de la función que se desea invocar; por lo tanto, también toma los argumentos y
los pasa a la función.
Cuarto, la función ejecuta el código, provoca el efecto deseado (si lo hubiera), evalúa el (los) resultado(s) deseado(s) y termina la tarea.
Finalmente, Python regresa al código (al lugar inmediatamente después de la invocación) y reanuda su ejecución.
La función print()
Tres preguntas importantes deben ser respondidas antes de continuar:
Toma los argumentos (puede aceptar más de un argumento y también puede aceptar menos de un argumento).
Los convierte en un formato legible para el ser humano si es necesario (como puedes sospechar, las cadenas no requieren esta acción, ya que la
cadena ya es legible).
Envía los datos resultantes al dispositivo de salida (generalmente la consola); en otras palabras, cualquier cosa que se ponga en la función de
print() aparecerá en la pantalla.
No es de extrañar entonces, que de ahora en adelante, utilizarás print() muy intensamente para ver los resultados de tus operaciones y evaluaciones.
2. ¿Qué argumentos espera print() ?
Cualquiera. Te mostraremos pronto que print() puede operar con prácticamente todos los tipos de datos ofrecidos por Python. Cadenas, números,
caracteres, valores lógicos, objetos: cualquiera de estos se puede pasar con éxito a print() .
La función print() - instrucciones
Ya has visto un programa de computadora que contiene una invocación de función. La invocación de una función es uno de los
muchos tipos posibles de instrucciones de Python.
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?
La sintaxis de Python es bastante específica en esta área. A diferencia de la mayoría de los lenguajes de programación, Python
requiere que no haya más de una instrucción por línea.
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.
salida
El programa invoca la función print() dos veces, como puedes ver hay dos líneas separadas en la consola: esto significa
que print() comienza su salida desde una nueva lí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 reflejan, esto
significa que las instrucciones en el código se ejecutan en el mismo orden en que se colocaron en el archivo fuente; no se
ejecuta la siguiente instrucción hasta que se complete la anterior (hay algunas excepciones a esta regla, pero puedes
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 agregado ningún argumento a la función.
¿Qué ocurre?
salida
Como puedes ver, la invocación de print() vacía no esta tan vacía como se esperaba - genera una línea vacía (esta interpretación
también es correcta) su salida es solo una nueva línea.
Esta no es la única forma de producir una nueva línea en la consola de salida. Enseguida mostraremos otra manera.
Hay dos cambios muy sutiles: hemos insertado un par extraño de caracteres dentro del texto. Se ven así: \n .
La barra invertida ( \ ) tiene un significado muy especial cuando se usa dentro de las cadenas, es llamado el carácter de escape.
La palabra escape debe entenderse claramente: significa que la serie de caracteres en la cadena se escapa (detiene) por un momento
(un momento muy corto) para introducir una inclusión especial.
En otras palabras, la barra invertida no significa nada, sino que es solo un tipo de anuncio, de que el siguiente carácter después de la
barra invertida también tiene un significado diferente.
Tanto la barra diagonal inversa como la n forman un símbolo especial denominado carácter de nueva línea (newline character),
que incita a la consola a iniciar una nueva línea de salida.
subió a su telaraña.
Vino la lluvia
y se la llevó.
salida
Como se puede observar, aparecen dos nuevas líneas en la canción infantil, en los lugares donde se ha utilizado \n .
El utilizar la diagonal invertida tiene dos características importantes:
1. Si deseas colocar solo una barra invertida dentro de una cadena, no olvides su naturaleza de escape: tienes que duplicarla, por
ejemplo, la siguiente invocación causará un error:
print("\")
print("\\")
2. No todos los pares de escape (la diagonal 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. Se han rodeado de espacios para hacerlos más visibles, pero no es realmente
necesario y no se hará más.
En este caso, las comas que separan los argumentos desempeñan un papel completamente diferente a la coma dentro de la cadena.
El primero es una parte de la sintaxis de Python, el segundo está destinado a mostrarse en la consola.
Si vuelves a observar el código, verás que no hay espacios dentro de las cadenas.
salida
Los espacios, removidos de las cadenas, han vuelto a aparecer. ¿Puedes explicar porque?
Una función print() invocada con más de un argumento genera la salida en una sola línea.
La función print() coloca un espacio entre los argumentos emitidos por iniciativa propia.
la manera posicional de pasar argumentos
Ahora que sabes un poco acerca de la función print() y como personalizarla, te mostraremos como cambiarla.
La forma en que pasamos los argumentos a la función print() es la más común en Python, y se denomina manera
posicional (este nombre proviene del hecho de que el significado del argumento está dictado por su posición, por ejemplo, el
segundo argumento se emitirá después del primero, y no al revés).
No se va a explicar en profundidad ahora. Se planea hacer esto cuando se trate el tema de funciones. Por ahora, simplemente
queremos mostrarte como funciona. Siéntete libre de utilizarlo en tus propios programas.
El mecanismo se llama argumentos de palabra clave. El nombre se deriva del hecho de que el significado de estos argumentos no
se toma 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 se pueden utilizar para estos propósitos. El primero de ellos se
llama end .
En la ventana del editor se puede ver un ejemplo muy simple de como utilizar un argumento de palabra clave.
Un argumento de palabra clave consta de tres elementos: una palabra clave que identifica el argumento ( end - termina
aquí); un signo de igual ( = ); y un valor asignado a ese argumento.
Cualquier argumento de palabra clave debe ponerse después del último argumento posicional (esto es muy importante).
En nuestro ejemplo, hemos utilizado el argumento de palabra clave end y lo hemos igualado a una cadena que contiene un espacio.
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.
El comportamiento predeterminado refleja la situación en la que el argumento de la palabra clave end se usa implícitamente de la
siguiente manera: end="\n" .
Si observas detenidamente, verás que hemos utilizado el argumento end , pero su cadena asignada está vacía (no contiene ningún
carácter).
salida
La cadena asignada al argumento de la palabra clave end puede ser de cualquier longitud. Experimenta con ello si gustas.
Mi-nombre-es-Monty-Python.
salida
La función print() ahora utiliza un guion, en lugar de un espacio, para separar los argumentos generados.
Nota: el valor del argumento sep también puede ser una cadena vacía. Pruébalo tu mismo.
Ambos argumentos de palabras clave pueden mezclarse en una invocación, como aquí en la ventana del editor.
El ejemplo no tiene mucho sentido, pero representa visiblemente las interacciones entre end y sep .
¿Puedes predecir la salida?
Ahora que comprendes la función print() , estás listo para aprender cómo almacenar y procesar datos en Python.
Puntos Clave
1. La función print() es una función integrada imprime/envía un mensaje específico a la pantalla/ventana de consola.
2. Las funciones integradas, al contrario de las funciones definidas por el usuario, están siempre disponibles y no tienen que ser
importadas. Python 3.7.1 viene con 69 funciones incorporadas. Puedes encontrar su lista completa en orden alfabético en Python
Standard Library.
3. Para llamar a una función (invocación de función), debe utilizarse el nombre de la función seguido de un paréntesis. Puedes
pasar argumentos a una función colocándolos dentro de los paréntesis. Se Deben separar los argumentos con una coma, por
ejemplo, print("¡Hola,", "Mundo!") . una función print() "vacía" imprime una línea vacía a la pantalla.
4. Las cadenas de Python están delimitadas por comillas, por ejemplo, "Soy una cadena" , o 'Yo soy una cadena, también' .
5. Los programas de computadora son colecciones de instrucciones. Una instrucción es un comando para realizar una tarea
específica cuando se ejecuta, por ejemplo, para imprimir un determinado mensaje en la pantalla.
6. En las cadenas de Python, la barra diagonal inversa ( \ ) es un carácter especial que anuncia que el siguiente carácter tiene un
significado diferente, por ejemplo, \n (el carácter de nueva línea) comienza una nueva línea de salida.
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.
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.
¿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.
Se utilizan literales para codificar datos y ponerlos dentro del código. Ahora mostraremos algunas convenciones que se deben seguir al utilizar Python.
La primera línea luce familiar. La segunda parece ser errónea debido a la falta visible de comillas.
Intenta ejecutarlo.
La función print() los muestra exactamente de la misma manera. Sin embargo, internamente, la memoria de la computadora los
almacena de dos maneras completamente diferentes. La cadena existe como eso, solo una cadena, una serie de letras.
El número es convertido a una representación máquina (una serie de bits). La función print() es capaz de mostrar ambos en una
forma legible para humanos.
Vamos a tomar algo de tiempo para discutir literales numéricas y su vida interna.
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.
No exploraremos las complejidades de los sistemas numéricos posicionales, pero se puede afirmar que todos los números
manejados por las computadoras modernas son de dos tipos:
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.
La característica del valor numérico que determina el tipo, rango y aplicación se denomina el tipo.
Si se codifica un literal y se coloca dentro del código de Python, la forma del literal determina la representación (tipo) que Python
utilizará para almacenarlo en la memoria.
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.*
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.
¿Cómo se codifican los números negativos en Python? Como normalmente se hace, agregando un signo de menos. Se puede
escribir: -11111111, o -11_111_111.
Los números positivos no requieren un signo positivo antepuesto, pero es permitido, si se desea hacer. Las siguientes líneas
describen el mismo número: +11111111 y 11111111.
Si un número entero esta precedido por un código 0O o 0o (cero-o), el número será tratado como un valor octal. Esto
significa que el número debe contener dígitos en el rango del [0..7] únicamente.
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 esun número hexadecimal con un valor (decimal) igual a 291 . La función print() puede manejar estos valores
también. Intenta esto:
print(0x123)
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.
Python no lo aceptará, o (en casos poco probables) puede malinterpretar el número, debido a que la coma tiene su
propio significado en Python.
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.
.4
Por ejemplo: el valor de 4.0 puede ser escrito como:
4.
Esto no cambiará su tipo ni su valor.
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.
Por ejemplo, la velocidad de la luz, expresada en metros por segundo. Escrita directamente se vería de la siguiente
manera: 300000000 .
Para evitar escribir tantos ceros, los libros de texto emplean la forma abreviada, la cual probablemente hayas visto: 3 x
108 .
En Python, el mismo efecto puede ser logrado de una manera similar, observa lo siguiente:
3E8
La letra E (también se puede utilizar la letra minúscula e - proviene de la palabra exponente) la cual significa por diez
a la n potencia.
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).
Una constante de física denominada "La Constante de Planck" (denotada como h), de acuerdo con los libros de texto,
tiene un valor de: 6.62607 x 10-34.
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.
print(0.0000000000000000000001)
Este es el resultado:
1e-22
salida
Python siempre elige la presentación más corta del número, y esto se debe de tomar en consideración al crear
literales.
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.
¿Cómo se puede hacer esto sin generar un error? Existen dos posibles soluciones.
La primera se basa en el concepto ya conocido del carácter de escape, el cual recordarás se utiliza empleando
la diagonal invertida. La diagonal invertida puede también escapar de la comilla. Una comilla precedida por una
diagonal invertida cambia su significado, no es un limitador, simplemente es una comilla. Lo siguiente funcionará como
se desea:
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.
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?
Revisar
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.
''
""
Valores Booleanos
Para concluir con los literales de Python, existen dos más.
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.
El nombre proviene de George Boole (1815-1864), el autor de Las Leyes del Pensamiento, las cuales definen
el Álgebra Booleana - una parte del álgebra que hace uso de dos valores: Verdadero y Falso , denotados como 1 y 0 .
Un programador escribe un programa, y el programa hace preguntas. Python ejecuta el programa, y provee las
respuestas. El programa debe ser capaz de reaccionar acorde a las respuestas recibidas.
Afortunadamente, las computadoras solo conocen dos tipos de respuestas:
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.
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 'Él dijo "Python", no "typhoon"' para codificar
comillas.
6. Los Valores Booleanos son dos objetos constantes Verdadero y Falso 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 NonType (ningún
tipo), y puede ser utilizado para representar la ausencia de un valor. Pronto se hablará más acerca de ello.
Ejercicio 1
Ejercicio 2
El primero es una cadena, el segundo es numérico (flotante), el tercero es numérico (entero) y el cuarto es booleano.
Ejercicio 3
1011
Revisar