<jupyter_start><jupyter_text>Tipos básicos<jupyter_code># y esto es un entero
e = 23
# podemos comprobarlo con la función type
type(e)
# 027 octal = 23 en base 10
entero = 0o27
type(entero)
# 0×17 hexadecimal = 23 en base 10
entero = 0x17
type(entero)
# numeros reales
real = 0.2703
type(real)
# numeros reales
real = 0.1e-3
type(real)
# numeros complejos
complejo = 2.1 + 7.8j
type(complejo)<jupyter_output><empty_output><jupyter_text>Operadores aritméticos<jupyter_code># Suma
r = 3 + 2 # r es 5
print (r)
# Resta
r = 4 - 7 # r es -3
print (r)
# Negación
r = -7 # r es -7
print (r)
# Multiplicación
r = 2 * 6 # r es 12
print (r)
# Multiplicación
r = 2 ** 6 # r es 64
print (r)
# División
r = 3.5 / 2 # r es 1.75
print (r)
# División entera
r = 3.5 // 2 # r es 1.0
print (r)
# Módulo. El operador de módulo no hace otra cosa que devolvernos el resto de la división entre los dos operandos.
r = 7 % 2 # r es 1
print (r)<jupyter_output>1<jupyter_text>Operadores a nivel de bit<jupyter_code># Por ejemplo, si veis una operación como 3 & 2, lo que estais viendo es un and bit a bit entre los números binarios 11 y 10 (las representaciones en binario de 3 y 2).
# and
r = 3 & 2 # r es 2
print (r)
# or
r = 3 | 2 # r es 3
print (r)
# xor
r = 3 ^ 2 # r es 1
print (r)
# not
r = ~3 # r es -4
print (r)
# Desplazamiento izq
r = 3 << 1 # r es 6
print (r)
# Desplazamiento der.
r = 3 >> 1 # r es 1
print (r)<jupyter_output>1<jupyter_text>Cadenas<jupyter_code>print("Las cadenas no son más que texto encerrado entre comillas simples ('cadena') o dobles (\"cadena\"). Dentro de las comillas se pueden añadir caracteres especiales escapándolos con \\, como \\n, el carácter de nueva línea, o \\t, el de tabulación.")
print ("Una cadena puede estar precedida por el carácter u o el carácter r, los cuales indican, respectivamente, que se trata de una cadena que utiliza codificación Unicode y una cadena raw (del inglés, cruda). \n\nLas cadenas raw se distinguen de las normales en que los caracteres escapados mediante la barra invertida (\) no se sustituyen por sus contrapartidas. Esto es especialmente útil, por ejemplo, para las expresiones regulares, como veremos en el capítulo correspondiente.")
unicode = u"äóè"
raw = r"\n"
print (unicode)
print (raw)
# Podremos escribir el texto en varias líneas, y al imprimir la cadena
triple = """primera linea
esto se vera en otra linea"""
print (triple)
print ("Las cadenas también admiten operadores como +, que funciona realizando una concatenación de las cadenas utilizadas como operandos y *, en la que se repite la cadena tantas veces como lo indique el número utilizado como segundo operando.")
a = "uno"
b = "dos"
c = a + b # c es "unodos"
print (c)
c = a * 3 # c es "unounouno"
print (c)<jupyter_output>unodos
unounouno<jupyter_text>Booleanos<jupyter_code># and ¿se cumple a y b? 
r = True and False # r es False
print (r)
# or ¿se cumple a o b?
r = True or False # r es True
print (r)
# not No a
r = not True # r es False
print (r)
print ("Los valores booleanos son además el resultado de expresiones que utilizan operadores relacionales (comparaciones entre valores):")
# == ¿son iguales a y b?
r = 5 == 3 # r es False
print (r)
# != ¿son distintos a y b?
r = 5 != 3 # r es True
print (r)
# < ¿son distintos a y b?
r = 5 < 3 # r es False
print (r)
# > ¿es a mayor que b?
r = 5 > 3 # r es True
print (r)
# <= ¿es a menor o igual que b?
r = 5 <= 5 # r es True
print (r)
# >= ¿es a mayor o igual que b?
r = 5 >= 3 # r es True
print (r)<jupyter_output>True
StarcoderdataJupyterStructuredCleanDedup