<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Operaciones Matemáticas y Tipos de Datos en Python 3
Operaciones Matemáticas Básicas
 TIPOS DE OPERACIONES POR ORDEN DE EJECUCIÓN
+ 1.Exponenciación
+ 2.Cambio de signo
+ 3.Multiplicación
+ 3.División
+ 3.Resto
+ 4.Suma
+ 4.Resta
Step1:  Variables en Python
Step2:  <br />
OPERACIONES CON BOOLEANOS
Los operadores booleanos son los habituales, AND para la conjunción, OR para la disyunción y NOT para la negación.
Además dispone de los operadores habituales de comparación. Los operadores de comparación son
Step3:  El valor True se corresponde con el valor entero 1, mientras que el el valor False se corresponde con el valor entero 0. Así, es posible realizar operaciones aritméticas con valores booleanos.
<br />
<br />
Step5:  <br />
OPERACIONES CON CADENAS DE CARACTERES
Mucha gente usa Python por sus capacidades para el tratamiento y procesamiento de cadenas.
Se corresponde con el tipo String de otros lenguajes. Las cadenas se pueden encerrar en comillas dobles o simples.
En Python 3.5 el tipo cadena es UNICODE por defecto.
<br />
<br />
Las cadenas se pueden comparar mediante ==, &lt;, &gt;, etc.
Las cadenas se pueden concatenar mediante +
Se puede multiplicar una cadena por un número
Se puede conocer su extensión mediante la función len(a)
<br />
<br />
Las cadenas largas de caracteres se encierran entre triple comillas dobles.
<br />
<br />
Step6:  <br />
OPERADORES DE FORMATO PARA CADENAS DE TEXTO
El uso del símbolo % seguido de uno o mas caracteres de formato permiten controlar con precisión la construcción de cadenas.
<br />
<br />
%s 
Step7:  <br />
LA VARIABLE DE TIPO FECHA
Python proporciona los tipos datetime, date y time en su módulo datetime. El tipo más usado es datetime.
<br />
<br />
datetime es el tipo que combina la fecha y la hora
date
<ASSISTANT_TASK:>
Python Code:
print(2 ** 6)
print(-3)
print(2 * 6)
print(6 / 2)
print(14 % 3)
print(2 + 6)
print(6 - 2)
# Operación especial que realiza la división y solo muestra el valor entero (sin decimales)
print(14 // 3)
# Primero se ejecuta la elevación del número 2 seis veces (64) y luego se le suma 7
print(2**6+7)
# Primero se ejecuta la multiplicación y luego la resta
print(8-6*9)
# Para clarificar las cosas se recomienda el uso de paréntesis para separar las operaciones según su orden de ejecución.
# También es necesario usarlos cuando dos operaciones tengan el mismo valor de ejecución, para obtener el resultado esperado.
# Ejemplos en el uso de los paréntesis:
print(9+1-2+3*6)
print((9+1-3+2)*6)
print(((9+1)-(3+2))*6)
Explanation: Operaciones Matemáticas y Tipos de Datos en Python 3
Operaciones Matemáticas Básicas
 TIPOS DE OPERACIONES POR ORDEN DE EJECUCIÓN
+ 1.Exponenciación
+ 2.Cambio de signo
+ 3.Multiplicación
+ 3.División
+ 3.Resto
+ 4.Suma
+ 4.Resta
End of explanation
# Los tipos de datos pueden combinarse según nos convenga sin que suponga un problema
# tipo int
sueldo_bruto = 35000
#tipo float
retenciones = 17.329
neto = sueldo_bruto-(sueldo_bruto*0.17329)
# Para concatenar variables de tipo string con variables de otro tipo, hay que convertir la variable NO string a string
# Es decir, realizar un casting de variables
print("Tu sueldo neto es de " + str(neto))
# FUNCIONES Y CASTEO DE VARIABLES
# Valor absoluto
abs ( 2 - 7 )
# Valor máximo
max (1 , 5 , 8 , 7)
# Valor mínimo
min( -1 , 1 , 0 )
# Redondeo de un numero float
round( 18.6 )
# Casteo de un float a un int
int (18.6 )
# Casteo de un int a un float
float ( 1 )
# Convierte un entero a una cadena de caracteres
str ( 256568 )
# Se pueden concatenar funciones mediante el uso de comas
abs ( 2 - 7 ), max (1 , 5 , 8 , 7), min( -1 , 1 , 0 ), round( 18.6 ), int (18.6 ), float ( 1 ), str ( 256568 )
Explanation: Variables en Python: Definición y tipos
DEFINICIÓN DE VARIABLE
Una variable es un espacio para almacenar datos en la memoria de un ordenador. En Python, una variable se define con la sintaxis:
nombre_de_la_variable = valor_de_la_variable
Cada variable, tiene un nombre y un valor. Así podemos almacenar un valor en una variable y posteriormente podemos utilizar dicha variable en expresiones. A esta acción de almacenar un valor a una variable se denomina asignación. Los nombres de las variables en Python pueden contener caracteres alfanuméricos (empezando con una letra) a-z, A-Z, 0-9 y otros símbolos como la _. Por cuestiones de estilo, las variables suelen empezar con minúscula.
<br />
<br />
Algunos nombres no pueden ser usados como nombres de variables (son palabras reservadas por python):and, as, assert, break, class, continue, def, etc.
<br />
<br />
<br />
TIPOS DE VARIABLES
Una vez comprendido lo que es una variable hay que explicar cuantos tipos de variables existen y como se representan.
En Python las variables no tienen que ser definidas previamente, ya que es un lenguaje de tipado dinámico, es decir, el es capaz de determinar que tipo de variable hemos escrito. Aún así, si existen diferentes tipos y estos son:
<br />
<br />
Tipo Entero (int)
Tipo Long (números enteros de muchas cifras)
Tipo Real (float)
Tipo String (cadena de caracteres)
Tipo Booleano (True o False)
Tipo Fecha
Tipo None (null)
<br />
<br />    
FUNCIONES EN PYTHON
Ya hemos visto cómo funciona la función print. Las funciones en Python se utilizan tal y como se hace en otros lenguajes de programación. Los argumentos se encierran entre paréntesis y se separan por comas.
Python proporciona funciones que podemos utilizar en las expresiones. Estas funciones se dice que están predefinidas:
<br />
<br />
Valor absoluto: abs
Valor máximo: max
Valor mínimo: min
Redondeo: round
<br />
<br />
Existen muchas funciones en Python, igual que en el resto de los lenguajes de programación y las iremos viendo poco a poco; pero existen unas cuantas que nos permiten hacer lo que se denomina como casting o, convertir un tipo de variable en otro
<br />
<br />
int() --&gt; Transforma la variable entre parentesis en una de tipo entero
float() --&gt; Transforma la variable entre parentesis en una de tipo coma flotante
complex() --&gt; Transforma la variable entre parentesis en una de tipo complejo
str() --&gt; Transforma la variable entre parentesis en una de tipo cadena de caracteres
End of explanation
#  la comparación devuelve un valor lógico
a = True
b = False
print(a == b)
# Uso de AND, OR, NOT
# con AND debe cumplir las dos condiciones para devolver un TRUE, sino será FALSE
5 * 4 <= 100 and 3 > 9
# con OR debe cumplir al menos una condiciones para devolver un TRUE, sino será FALSE
5 * 4 > 100 or 3 < 9
# con NOT no debe cumplir ninguna condición para devolver un TRUE, sino será FALSE
not 5 * 4 > 10
Explanation: <br />
OPERACIONES CON BOOLEANOS
Los operadores booleanos son los habituales, AND para la conjunción, OR para la disyunción y NOT para la negación.
Además dispone de los operadores habituales de comparación. Los operadores de comparación son:
<br />
<br />
== igual a
!= distinto de
&lt; menor que
&lt;= menor o igual que
&gt; mayor que
&gt;= mayor o igual que
<br />
<br />
End of explanation
# Siendo TRUE = 1 el resultado será 5
(True + 4) * True
# Siendo FALSE = 0 y TRUE = 1 el resultado será 2
(False + 2) * True
Explanation: El valor True se corresponde con el valor entero 1, mientras que el el valor False se corresponde con el valor entero 0. Así, es posible realizar operaciones aritméticas con valores booleanos.
<br />
<br />
End of explanation
larga =  Los Reyes Católicos fue la denominación que recibieron los esposos
Fernando II de Aragón e Isabel I de Castilla, soberanos de la Corona de
Castilla (1474-1504) y de la Corona de Aragón (1479-1516).
Los Reyes accedieron al trono de Castilla tras la Guerra de Sucesión 
Castellana (1475-1479) contra los partidarios de la princesa Juana la 
Beltraneja, hija del rey Enrique IV de Castilla. En 1479 Fernando heredó el 
trono de Aragón al morir su padre, el rey Juan II de Aragón. Isabel y Fernando
reinaron juntos hasta la muerte de ella en 1504. Entonces Fernando quedó
únicamente como rey de Aragón, pasando Castilla a su hija Juana, apodada
"la Loca", y a su marido Felipe de Austria, apodado "el Hermoso", Archiduque
de Austria, duque de Borgoña y conde de Flandes. Sin embargo Fernando no 
renunció a controlar Castilla y, tras morir Felipe en 1506 y ser declarada 
Juana incapaz, consiguió ser nombrado regente del reino hasta su muerte en 1516
print(larga)
# El uso de dobles comillas en cadenas de caracteres debe respetar un formato concreto, puesto que " es un caracter especial.
# La sintáxis debe ser como en ejemplo, teniendo en cuenta que / es otro caracter especial y lo que va entre / / se representa
# tal y como se escribe integramente.
comillas = "Las \"comillas\" son caracteres epeciales"
comillas
especial = "Hay otros caracteres especiales como el salto de línea.\nSirve para representar el fín de línea en ficheros."
print(especial)
Explanation: <br />
OPERACIONES CON CADENAS DE CARACTERES
Mucha gente usa Python por sus capacidades para el tratamiento y procesamiento de cadenas.
Se corresponde con el tipo String de otros lenguajes. Las cadenas se pueden encerrar en comillas dobles o simples.
En Python 3.5 el tipo cadena es UNICODE por defecto.
<br />
<br />
Las cadenas se pueden comparar mediante ==, &lt;, &gt;, etc.
Las cadenas se pueden concatenar mediante +
Se puede multiplicar una cadena por un número
Se puede conocer su extensión mediante la función len(a)
<br />
<br />
Las cadenas largas de caracteres se encierran entre triple comillas dobles.
<br />
<br />
End of explanation
texto = "Cambio: %d %s son %.5f %s"
print(texto % (1, "dolar" , 0.89465444 , "euros"))
print(texto % (1, "euro", 1.11775, "dólares"))
radio = 4.323343
pi = 3.141592
area = pi * radio ** 2
print ('El área de un círculo de radio %.6f es %.6f' % (radio, area))
Explanation: <br />
OPERADORES DE FORMATO PARA CADENAS DE TEXTO
El uso del símbolo % seguido de uno o mas caracteres de formato permiten controlar con precisión la construcción de cadenas.
<br />
<br />
%s : ha de sustituirse por una cadena
%d : ha de sustituirse por un entero
%.2f : ha de sustituirse por un número con dos decimales
<br />
<br />
End of explanation
# El formato de DATETIME es con notación americana (año, mes, dia, hora, minutos, segundos)
from datetime import datetime, date, time
dt = datetime(2011, 10, 5, 16,50,0)
print(dt.day, dt.month, dt.year)
texto = "La fecha es: %d/%d/%d"
texto2 = "Y son las: %d:%d:%d"
print(texto % (dt.day, dt.month, dt.year))
print(texto2 % (dt.hour, dt.minute, dt.second))
# Un ejemplo extrayendo la fecha actual del sistema y presentandola en formato STRING
from datetime import datetime, date, time
fecha = datetime.now()
fecha.strftime("La fecha de hoy es: "'%d/%m/%Y  %H:%M:%S')
Explanation: <br />
LA VARIABLE DE TIPO FECHA
Python proporciona los tipos datetime, date y time en su módulo datetime. El tipo más usado es datetime.
<br />
<br />
datetime es el tipo que combina la fecha y la hora
date: almacena la fecha
time : tipo para la hora
<br />
<br />
End of explanation
<END_TASK>