Operaciones con tipos de datos básicos

La asignación = es fundamental. Se puede pensar como guardar información en una variable.

x = 3.4
x = x + 1 # asignammos a la variable x el valor anterior más 1, se opera de derecha a izquierda.
print(x)
4.4

Al nombre de las variables se les denomina identificadores. Estos siguen algunas reglas para que sean válidos. La reglas son relativamente flexibles, una simplificación muy burda es:

  • No comenzar con número o caracteres especiales (?, =, !, -, &, etc.)

  • No tener caracteres especiales despues del inicio, los numeros despues del inicio están permitidos

  • El guion bajo está permitido en cualquier posición

  • Se distingue entre mayúsculas y minúsculas, estas pueden utilizarse en cualquier posición del identificador

Para precisar las reglas de construcción de los identificadores se puede consultar el sigueinte enlace

1casa = 1
&casa = 2
_ = 3
beto  = 34
Beto = 56
  File "<ipython-input-2-44731d701242>", line 1
    1casa = 1
     ^
SyntaxError: invalid syntax

Podría coincidir que el identificador que se elige, es una palabra clave de Python (Keywords), estas no pueden utilizarse como identificadores. En ese caso debe de elegirse otro identificador

Palabras clave

False - await - else - import - pass - None - break - except - in - raise

True - class - finally - is - return - and - continue - for - lambda - try

as - def - from - nonlocal while - assert - del - global - not - with

async - elif - if - or - yield

import = 6
  File "<ipython-input-21-f3aad9a9458b>", line 1
    import = 6
           ^
SyntaxError: invalid syntax

Tipos numéricos

Operación

Resultado

x + y

suma x con y

x - y

diferencia x con y

x * y

producto x con y

x / y

cociente x con y

x // y

cociente (parte entera) x con y

x % y

residuo de x / y

-x

x negativa

+x

x

abs(x)

valor absoluto o magnitud de x

int(x)

x conversión a entero

float(x)

x conversión a flotante

complex(re, im)

numero complejo con parte real re, parte imaginaria im. im default es cero.

x ** y

x elevado a y

z = complex(2, 4)
w = complex(-1, 4)
x = z + w
print(x)
print(type(x))
(1+8j)
<class 'complex'>

Las siguientes operaciones se denominan comparaciones, los resultados son True o False

Operacion

Significado

<

estrictamente menor que

<=

menor o igual que

>

estrictamente mayor que

>=

mayor o igual que

==

igual que

!=

diferente que

is

igualdad a nivel de identidad (Son el mismo objeto)

is not

desigualdad a nivel de identidad (no son el mismo objeto)

a = 4
b = 9
c = 9
d = 9.0

print(a == b)
print(b == c)
print(a != b)
print(b is c)
print(c is d)
print(4 < b <  d + 9)
False
True
True
True
False
True

Operaciones booleanas

Los elementos innvolucrados deben ser True o False, en ese caso, el resultado es True o False. Si se invilucran otrso enteros el resulatado puede no ser útil

Operación

Resultado

Nota

x or y

Si x es falso, el resultado es y, de otro modo es x

El resultado es verdadero a menos que los dos sean falsos

x and y

Si x es falso, el resutado x, de otro modo y

El resultado solo es verdadero si ambos son verdaderos

not x

Si x es falso, el resultado es True, de otro modo es False

negación

x = True
y = False
w = 3
z = 0

print(x or y)
print(x and y)
print(not x)
print(w or y)
print(w and x)
print(x and w)
print(z and x)
print(y and z)


print(x and not y or not w and w+8 <= 45 or not z-5 < 4)
True
False
False
3
True
3
0
False
True

Prioridad de operaciones

La última operación sigue un orden de evaluación. En general, se denomina prioridad de opeaciones a dicho orden. La siguiente tabla resume la prioridad de operador en Python, desde la prioridad más baja a la prioridad más alta. Operadores en la misma caja tienen la misma prioridad. Los operadores en la misma caja, de izquierda a derecha (excepto para exponenciación de derecha a izquierda).

Operador

Descripción

=

Expresión de asignación

lambda

Expresión lambda

if – else

Expresión condicional

or

Booleano OR

and

Booleano AND

not x

Booleano NOT

in, not in, is, is not, <, <=, >, >=, !=, ==

Comparaciones, incluyendo comprobaciones de membresía y de identidad

^

XOR bit a bit

&

AND bit a bit

<<, >>

Desplazamientos

+, -

Adición y sustracción

*, @, /, //, %

Multiplicación, multiplicación de matrices, división, división de redondeo, resto 5

+x, -x, ~x

NOT positivo, negativo, bit a bit

**

Exponenciación

await x

Expresión await

x[index], x[index:index], x(arguments…), x.attribute

Subscripción, segmentación, invocación, referencia de atributo

(expressions…), [expressions…], {key: value…}, {expressions…}

Expresión de enlace o entre paréntesis, despliegues de lista, diccionario y conjunto

Tip…

Utiliza paréntesis

x = 4 + 3 - 2 ** 2
print(x)

x = 4 + (3 - 2) ** 2
print(x)
3
5

Cadenas de caracteres

Las operaciones de la siguiente tabla están soportadas por la mayoría de los tipos secuencia.

La tabla lista las operaciones ordenadas de menor a mayor prioridad. En la tabla, s y t representan secuencias del mismo tipo, n, i, j y k son números enteros y x es un objeto arbitrario que cumple con cualquier restricción de tipo o valor impuesta por s.

Operadoración

Resultado

x in s

True si un elemento de s es igual a x, False en caso contrario

x not in s

False si un elemento de s es igual a x, True en caso contrario

s + t

la concatenación de s y t

s * n o n * s

equivale a concatenar s consigo mismo n veces

s[i]

El elemento i-esimo de s, empezando a contar en 0

s[i:j]

la rebanada de s desde i hasta j-1

s[i:j:k]

la rebanada de s desde i hasta j-1, con paso k

len(s)

longitud de s

min(s)

el elemento más pequeño de s

max(s)

el elemento más grande de s

s.index(x[, i[, j]])

índice de la primera ocurrencia de x en s (en la posición i o superior, y antes de j)

s.count(x)

número total de ocurrencias de x en s

s = 'comida china'
t = " no gracias"
n = 2
print('c' in s)
print('r' not in s)
print(s + t)
print(s*n) # primitiva de Python, en otros lenguajes podría no existor o tener otra salida 
print(s[4])
print(s[1:5])
print(s[2:10:2])
print(len(s))
print(max(s))
print(min(s))
print(s.index('a'))
print(s.index('a',6))
#print(s.index('a',6,11)) # si no lo encuentra marca error
print(s.index('a',5,11))
print(s.count('a'))
True
True
comida china no gracias
comida chinacomida china
d
omid
md h
12
o
 
5
11
5
2