IWI131 Programación


Introducción a Python 3.X



Departamento de Informática
Universidad Técnica Federico Santa María

Python 3.X

Python es lenguage de programación cuya ejecución es realizada a través de un interprete. Éste interprete lee código desde:

  • La consola de python.
  • Archivos de texto (con extensión .py)

En esta clase nos centraremos mayoritariamente en la consola de python.

Tipos de Datos

Números enteros

Tipo int (integer)

In [1]:
1
Out[1]:
1
In [2]:
+135
Out[2]:
135
In [3]:
-124
Out[3]:
-124

Números Reales

Tipo float (punto flotante)

In [4]:
-0.36
Out[4]:
-0.36
In [5]:
1.
Out[5]:
1.0
In [6]:
6.02e23
Out[6]:
6.02e+23

Valores Lógicos

Tipo bool

In [7]:
True
Out[7]:
True
In [8]:
False
Out[8]:
False

Texto

Tipo str (strings)

In [9]:
"hola"
Out[9]:
'hola'
In [10]:
'hola'
Out[10]:
'hola'
In [11]:
"Let's Go!"
Out[11]:
"Let's Go!"
In [12]:
'Ella dijo "Hola"'
Out[12]:
'Ella dijo "Hola"'

Expresiones y operadores

Expresión: combinación de valores que pueden ser evaluados y entregan un resultado. Pueden estar formados por:

  • valores literales
  • variables
  • operadores
  • llamadas a funciones

Operador: símbolo en una expresión que representa una operación aplicada a los valores sobre los que actúa.

Operadores Aritméticos

Operan sobre valores numéricos y entregan un valor numérico como resultado. Pueden ser:

  • Operadores binarios
  • Operadores unarios

Operadores binarios

  • Suma (+)
  • Resta (-)
  • Multiplicación (*)
  • División (/)
  • División Entera (//)
  • Módulo (%)
  • Potencia (**)
In [13]:
3+2
Out[13]:
5
In [14]:
8-5
Out[14]:
3
In [15]:
8-5.0
Out[15]:
3.0
In [16]:
1/2
Out[16]:
0.5
In [17]:
1//2
Out[17]:
0

Operadores unarios

  • Positivo (+)
  • Negativo (-)
In [18]:
+3
Out[18]:
3
In [19]:
-5.0
Out[19]:
-5.0

Llamados a funciones y uso de librerías

In [20]:
abs(4-5)
Out[20]:
1
In [21]:
round(54.5)
Out[21]:
54
In [22]:
from math import exp
exp(2)
Out[22]:
7.38905609893065
In [23]:
import math
math.sqrt(36)
Out[23]:
6.0
In [24]:
from random import randint
randint(1,10)
Out[24]:
4

Precedencia de Operadores

Las expresiones se evalúan siguiendo reglas de precedencia para evitar ambigüedades. La precedencia de operadores, de menor a mayor, es la siguiente:

  • +, -
  • *, /, //, %
  • +x, -x (unario)
  • **
  • abs(), sqrt(), randint() (llamada a funciones)
  • (, ) (parentesis)

Conversión entre tipos de datos

In [25]:
int(3.5)
Out[25]:
3
In [26]:
float("1")
Out[26]:
1.0
In [27]:
str(25)
Out[27]:
'25'
In [28]:
bool(0.0)
Out[28]:
False

Asignación de variables

Una asignación de variables tiene la forma:

<variable> = <expresion>
  • Primero se evalúa la expresión a la derecha del signo igual.
  • El resultado de la evaluación es asignado a la variable a la izquierda del signo igual.

¿Qué valor tienen las siguiente variables?

In [29]:
a = 4 + 5
b = a + 4
a = 2
d = a - 3
e = e + 1
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-29-9c013495dc5f> in <module>
      3 a = 2
      4 d = a - 3
----> 5 e = e + 1

NameError: name 'e' is not defined

Entrada de datos

In [30]:
nombre = input("Ingrese su nombre: ")
Ingrese su nombre: Juan

¿Qué tipo de dato es la variable nombre?

In [31]:
nombre
Out[31]:
'Juan'

Salida de datos

In [32]:
print("Hola mundo")
Hola mundo
In [33]:
a = 6
x = a**2
In [34]:
print(a, 'al cuadrado es', x)
6 al cuadrado es 36
In [36]:
print(a, x)
6 36
In [37]:
print(a)
print(x)
6
36

Comentarios

  • Son segmentos de código ignorados por el intérprete
  • Sirven para explicar en código
  • Se escriben a la derecha del caracter #
In [38]:
#El siguiente codigo muestra la suma de 2 + 2 en pantalla
print(2 + 2)
4

Ejemplo 1

In [39]:
from IPython.display import IFrame
IFrame('https://trinket.io/embed/blocks/e9c6e0d6cd?hideGeneratedCode=true', width="100%", height=300)
Out[39]:
In [40]:
nombre = input('Nombre: ')
print("Yo soy", nombre)
Nombre: Juan
Yo soy Juan

Ejemplo 2

In [41]:
IFrame('https://trinket.io/embed/blocks/ff0015f15a?hideGeneratedCode=true', width="100%", height=300)
Out[41]:
In [42]:
f = float(input('Temp. en Farenheit: '))
c = (f-32) * (5/9)
print('El equivalente en Celsius es aproximadamente:', int(round(c)))
Temp. en Farenheit: 67
El equivalente en Celsius es aproximadamente: 19

Algunos errores

In [43]:
n = 8
m = 0
print('Listo')
print(n/m)
Listo
---------------------------------------------------------------------------
ZeroDivisionError                         Traceback (most recent call last)
<ipython-input-43-b5e280c3579a> in <module>
      2 m = 0
      3 print('Listo')
----> 4 print(n/m)

ZeroDivisionError: division by zero
In [44]:
2*(3+4))
  File "<ipython-input-44-93a067e50f9d>", line 1
    2*(3+4))
           ^
SyntaxError: invalid syntax
In [45]:
n = 6
print(n)
n + 2 = 7
print(n)
  File "<ipython-input-45-ccc6411f6610>", line 3
    n + 2 = 7
             ^
SyntaxError: can't assign to operator
In [46]:
x = 20
5*x
Out[46]:
100
In [47]:
5 * y
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-47-ca87293f5d2d> in <module>
----> 1 5 * y

NameError: name 'y' is not defined

Algunos comentarios finales

  • Python es como escribir en inglés.
  • NO usar espacios para el nombre de una variable.
  • NO usar nombres de variables iniciadas en números.
  • Si bien python acepta tíldes para los nombres de variables, una buena práctica es no utilizarlas.

Ejercicio 1

Realice un programa que determine el área de un círculo a partir de su radio.

In [48]:
pi = 3.1415
radio = int(input('Ingrese el radio de un círculo: '))
print("El área de la circunferencia es", pi*(radio**2))
Ingrese el radio de un círculo: 10
El área de la circunferencia es 314.15000000000003

Ejercicio 2

Realice un programa que calcule el área de un triángulo a partir de las longitudes de sus lados.

In [49]:
from math import sqrt

l1 = float(input("Ingrese longitud de lado 1: "))
l2 = float(input("Ingrese longitud de lado 2: "))
l3 = float(input("Ingrese longitud de lado 3: "))
s = (l1+l2+l3)/2 #semiperímetro

d1 = s-l1 #diferencia1
d2 = s-l2 #diferencia2
d3 = s-l3 #diferencia3
prod = s*d1*d2*d3 #producto de diferencias y semiperimetro
area= sqrt(prod) #raíz cuadrada

print("El área del triángulo es", area)
Ingrese longitud de lado 1: 10
Ingrese longitud de lado 2: 20
Ingrese longitud de lado 3: 25
El área del triángulo es 94.99177595981665
In [ ]: