2.python Básico Variables, Expresiones y Sentencias
2.python Básico Variables, Expresiones y Sentencias
Fundamentals
Índice
1. Tipos y valores
El valor es uno de los aspectos más básicos de la programación, como un número o una
letra. Los ejemplos que hemos visto hasta ahora han sido números (6, 2…) y “Hola
mundo”.
- 6 es un integer
Los strings son muy fácilmente identificables porque vienen rodeados de comillas. En
Python, estas comillas pueden ser simples o dobles, aunque normalmente se suele
recomendar utilizar las comillas simples. Lo importante, eso sí, es que el tipo de
comillas sea el mismo a la apertura y al cierre del string.
Textos str
Mapeados dict
Booleanos bool
Podemos usar la función type para identificar el tipo de un valor: (recuerda que para
abrir el intérprete solo necesitamos introducir “python”
C:\alvaro\cursoPython>python
Python 3.9.4 (tags/v3.9.4:1f2e308…
>>> type('Hola mundo')
<class 'str'>
>>> type(6)
<class 'int'>
>>>
Como podemos ver, Hola mundo es un string, o str, y 6 es un integer, o int. Los
números con decimales son un tipo distinto llamado float:
>>> type(8.2)
<class 'float'>
>>>
Es importante remarcar que esta función type no es tan inteligente como a lo mejor
pudiéramos esperar. Por ejemplo, ¿qué ocurre si introducimos “6”, u “8.2”? Parecen
números pero están rodeados de comillas:
>>> type("6")
<class 'str'>
>>> type("8.2")
<class 'str'>
>>>
Son strings.
>>> print(1,000)
1 0
>>>
En este caso la función print los identifica como dos números separados por comas y
los imprime por separado. por supuesto si podemos indicar este formateo si el número
lo estamos escribiendo en un string:
>>> print("1,000")
1,000
>>>
Los tipos son un concepto muy sencillo pero increíblemente importante y potente, ya
que nos limitan qué operaciones podemos realizar entre 2 valores. hay muchas
operaciones que no podremos realizar entre tipos distintos.
Por ejemplo, podremos realizar sumas, restas y cálculos numéricos entre dos valores
cualquiera de tipos numéricos aunque sean distintos, pero no podremos realizar una
suma entre un texto y un número:
>>> 6 + 8.2
14.2
>>>
>>> 6 + "1000"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and
'str'
>>>
Los tipos no son inamovibles, hay muchos compatibles, cuyos valores pueden cambiar
sin problemas entre uno y otro. Los nombres de los tipos funcionan también como
funciones, que podemos ejecutar para cambiar el tipo de un valor. Por ejemplo,
podemos cambiar sin problemas un número entero a un float:
>>> float(5)
5.0
>>>
A este proceso, lo llamamos casting. Al revés también funciona, aunque no hace ningún
tipo de redondeo (existen otras funciones para eso, como round):
>>> int(8.2)
8
>>> int(8.8)
8
>>>
El casting no funciona solo entre números, podemos hacer lo mismo con strings, por
ejemplo:
>>> int('7')
7
>>>
2. Variables
Una de las funcionalidades más importantes de un lenguaje de programación es la
habilidad para trabajar con variables: un nombre en el que almacenamos un valor. ya
hemos hecho algunos de ejemplo, y hemos visto lo sencillo que es definir variables:
>>> n = 6
>>> msg = 'Hola mundo'
>>> decimal = 8.2
>>>
>>> n + decimal
14.2
>>> print(msg)
Hola mundo
>>>
Normalmente elegiremos nombres para estas variables que definan y documenten para
qué vamos a utilizar la variable o qué información contendrá.
No hay reglas de lo largo que puede ser el nombre de una variable, y pueden contener
números y letras, así como barra bajas ( _ ). Este último suele usarse en variables en
cuyo nombre aparece en varias palabras, cómo mi_variable. El nombre de una variable
puede empezar con este carácter, pero suele evitarse salvo en algunos casos.
Podemos utilizar mayúsculas pero es buena idea que el nombre de la variable empiece
en minúsculas. Veremos más adelante por qué. Otra de las limitaciones es que no debe
empezar con un número.
Ya hemos visto que en Python existen varias palabras reservadas que nos sirven para
definir la estructura y aspectos de la sintaxis del programa. Estas palabras no pueden
usarse como nombres de variable:
as except is True
def global or
del if pass
>>>
3. Expresiones y sentencias
Estas líneas de Python que estamos ejecutando en el intérprete son lo que llamamos
sentencias, unidades de código ejecutables por sí misma. Hasta ahora las hemos visto
de 2 tipos: expresiones y asignaciones.
El siguiente script:
print(6)
x = 8.2
print(x)
6
8.2
3.1. Operadores
Los operadores son símbolos especiales que representan cálculos como la suma o la
resta. ya hemos visto que en Python podemos usarlos exactamente igual que en una
calculadora. Hay alguno extra aparte de los básicos que podríamos esperarnos:
+ Suma
- Resta
* Multiplicación
/ División
** Exponenciación
>>> 6 + 8.2
14.2
>>> 5 - 6
-1
>>> 85 * 4
340
>>> 59 / 60
0.9833333333333333
>>> 6 ** 2
36
>>> 59 // 60
0
>>> 59 % 60
59
# python 2.x
>>> 59 / 60
0
# python 3.x
>>> 59 / 60
0.9833333333333333
>>> 59 // 60
0
Cuando en una misma sentencia hay varias operaciones, porque sea un cálculo más
complejo, el orden de las operaciones en Python es el mismo que en álgebra:
1. Paréntesis
2. Exponentes
Ante la duda, por supuesto, es mejor rodear las operaciones por paréntesis.
>>> 8 + 6
14
>>> '8' + '6'
'86'
>>>
Nota como al final del string hay un espacio para que en la concatenación se separen
las palabras. Este operador se utiliza mucho cuando queremos separar mensajes en la
consola:
print('Primer mensaje')
print('-' * 40)
print('Otro mensaje')
Primer mensaje
----------------------------------------
Otro mensaje
3.4. Expresiones
El resto de sentencias que no son una asignación, son expresiones: una combinación
de valores, variables y operadores. Incluso un valor suelto, o una variable, es una
expresión:
8
x # asumiendo que x ya lo asignamos anteriormente
x + 8
>>> 6 + 8
14
>>> 8
8
>>> x # asumiendo que x ya lo asignamos anteriormente
6
4. Comentarios
Todos los lenguajes de programación nos permiten escribir comentarios alrededor del
código explicando las sentencias, el significado de algunas variables, el propósito de
las funciones, etcétera. A medida que los programas se vuelven más grandes y más
complejos, se vuelven más difíciles de leer y estos comentarios se tornan
imprescindibles.
Por esta razón, es muy buena idea que nos acostumbremos a añadir comentarios en
lenguaje natural. En Python comienzan con una almohadilla ( # ). en alguno de los
ejemplos anteriores ya lo utilizábamos.
En este caso el comentario ocupa una línea completa, pero también podemos poner
comentarios al final de una línea:
Obviamente, los comentarios son más útiles cuando explicamos partes del código que
no son tan obvias. Además, normalmente el lector es capaz de entender qué hace el
código, así que es mucho más interesante explicar por qué.
Los nombres de las variables pueden reducir la necesidad de comentarios, si están bien
escogidos, pero nombres demasiado largos hacen que las operaciones más complejas
sean más difíciles de leer. Es un equilibrio que tenemos que tener en cuenta y
compensar con los comentarios cuando sea necesario.
a = 20
b = 10
c = a * b
print(c)
ancho = 20
alto = 10
area = ancho * alto
print(area)
ikjh2a = 20
ikji2a = 10
ikjp2a = ikjh2a * ikji2a
print(ikjp2a)
Para Python estros 3 programas anteriores son exactamente el mismo, pero para
nosotros, humanos, no tienen nada que ver. En los 3 casos entendemos qué se está
haciendo: una multiplicación entre 2 variables. Pero solo en el segundo entendemos
realmente qué se está haciendo: calcular el área de un polígono, porque las variables
están elegidas de tal manera que reflejan el significado del valor que contienen.
Como habrás podido observar, nada nos impide utilizar nombres de variables, strings
y comentarios con palabras en español. Incluso con tildes y caracteres específicos del
lenguaje español (ñ, ü, …).
>>> prefijo_españa = 34
>>> print(prefijo_españa)
34
>>> print('Prefijo España')
Prefijo España
Cuando el programa llega a este punto, se detiene hasta que el usuario escribe algo.
una vez que el usuario presiona el intro, el programa continúa la ejecución, e input
devuelve lo que el usuario ha escrito como un string.
Por supuesto, podemos guardar ese input del usuario en una variable para utilizarlo
después. Si esperamos que el usuario introduzca un número, ya hemos visto que
podemos intentar convertir el string a un integer con la función int():
Hay que tener mucho cuidado con los inputs, porque si el usuario
introduce algo que no sea un número, el intérprete nos devolverá un
error:
10