Elementos básicos
IWI 131
Wladimir Ormazábal (wladimir.ormazabal@usm.cl)
IWI-131

Previos

  • Se trabajará con Python, para verificar la versión puede escribir por consola:

    python -V
    
IWI-131
  • Existen múltiples opciones para trabajar escribiendo / editando sus scripts, por ejemplo:
    • VS Code que cuenta con complementos para trabajar con Python
    • IDLE un entorno de trabajo integrado (buscar por su nombre).
    • Editores de texto tradicionales, respetando la extensión .py para la interpretación del código.
IWI-131

Puede acceder a la consola para realizar las primerar pruebas y aproximaciones por medio de la consola de trabajo provista por IDLE o bien en por medio de una consola del sistema, y luego de python o python3 (dependerá de su sistema):


IWI-131

Tipos de datos

  • En la consola podemos utilizar type para conocer el tipo de dato asociado a algún valor (o variables en el futuro)
IWI-131

Tipos de datos

Numérico: int

Corresponde a los números enteros, por ejemplo, el número de alumnos inscritos en este paralelo.

Por ejemplo: 0, 11 o -10

IWI-131

Tipos de datos

Numérico: float

O punto flotante; corresponde a los números reales. Los podemos identificar por el uso de decimales.

Por ejemplo: 1.5, 10.0 o -0.5

IWI-131

Tipos de datos

Numérico: float

Se pueden escribir de dos formas:

  • Notación literal:
    • 1.5, 10.0 o -0.5
  • Notación científica:
    • 15e-1 ()
    • 1e1 ()
    • -5e-1 ()
IWI-131

Tipos de datos

Numérico: float

Es importante considerar que en el caso de los flotantes puede tener problemas con la forma en que lo datos se representan internamente, pudiendo obtener resultados que pueden parecer extraños

  • Por ejemplo:

  • Verifiquemos por consola.

IWI-131

Tipos de datos

Valores lógicos

  • En el caso anterior fue utilizado.
  • Solo dos posibles valores: True (Verdadero) o False (Falso).
IWI-131

Tipos de datos

Texto: string

  • Corresponde a los textos.
  • Se pueden utilizar entre comillas simples ' o dobles ", pero se debe respetar la que se utilice. Por ejemplo:
    • "hola mundo"
    • 'hola mundo'
    • "hola 'mundo'"
    • 'hola "mundo"'

En unidades futuras se verán con mayor detalle

IWI-131

Operaciones

En el contexto de evaluación de expresiones encontramos los diferentes elementos:

  • Valores literales (que ya conocemos)
  • Operadores (lo que se ejemplifica a continuación)
  • Variables (puntos siguientes)
  • Llamadas a función (se verá de forma transversal, y luego en detalle)
IWI-131

Operaciones

El significado de los operadores, se ve determinado por el tipo de datos involucrados en la operación, además, el tipo de dato resultante puede variar respecto a los operandos.

IWI-131

Operadores aritméticos

El tipo de dato del resultado, depende de los tipos de datos involucrados

Operador Simbolo Tipo Ejemplo
Suma + Binario .5 + 1
Resta - Binario 1 - 2
Multiplicacion * Binario 10 * 0
División / Binario 10 / 3
División entera // Binario 10 // 3
Modulo % Binario 10 % 3
Potencia ** Binario 10**3
Negativo - Uniario -.4
Positivo + Uniario +10e2
IWI-131

Operadores relacionales

  • El tipo de dato del resultado es bool
Operador Simbolo Tipo Ejemplo
Igual a == Binario 1 == 1
Distinto a != Binario 1 != 0
Mayor que > Binario 1 > 0
Mayor o igual que >= Binario 1 >= 1
Menor que < Binario 1 < 2
Menor o igual que <= Binario 1 <= 1
IWI-131

Operadores lógicos

  • El tipo de dato del resultado es del tipo bool
  • El resultado de las operaciones obedece a las típicas tablas de verdad de la lógica booleana:
Operador Simbolo Tipo Ejemplo
AND and Binario True and True
OR or Binario False or True
NOT not Uniario not False
IWI-131

Operadores lógicos

  • El resultado obedece las reglas de la lógica booleana:
p q not q p and q p or q
- False True True True
- True False False True
False False - False False
False True - False True
True False - False True
True True - True True
IWI-131

Operadores sobre texto

  • El tipo de dato del resultado es del tipo str
Operador Simbolo Tipo Ejemplo
Concatenar + Binario 'hola' + ' ' + "mundo"
Repetir * Binario 'hola '*2

Existen otras operaciones, pero se verán más adelante

IWI-131

Precedencia

  • Conjunto de reglas que especifica en que orden deben ser evaluadas las operaciones de una expresión.
  • Una buena practica es explicitarlar por medio del uso de paréntesis y variables que almacenen valores intermedios.

Observación 1: Aquellas operaciones que se aprecian en el mismo nivel, se evalúan según el orden en que aparece.

Observación 2: En el caso de las potencias, la evaluación se hace de derecha a izquierda.

IWI-131

Precedencia

De menor a mayor precedencia la evaluación es la siguiente
or
and
not
<,<= , >, >= ,!=, ==
+, - (aritméticos binarios)
*, /, %
+, - (aritméticos unarios)
**
IWI-131

Variables

Es cuando asociamos un nombre al resultado en la evaluación de una expresión. También se le conoce como asignación.

El nombre de la expresión, se le conoce como variable (asignamos un valor a la variable). Tiene reglas (sintaxis) definidas que se deben respetar:

  • Primero se evalúa el lado derecho.
  • Siguen la forma variable = expresión
  • Las variables NO pueden comenzar su nombre con un número.
  • Los nombres se pueden componer de números y letras (mayúscula o minúscula); podemos usar el simbolo _ también.
  • Una buena práctica es utilizar nombres que resulten claros para el algoritmo que estamos codificando.
IWI-131

Hay formas de asignación especiales, cuando se esta modificando la misma variable en base a alguna de las siguientes operaciones:

Operador Simbolo
a = a + 1 a += 1
a = a - 1 a -= 1
a = a * 1 a *= 1
a = a // 1 a //= 1
a = a / 1 a /= 1
a = a % 1 a %= 1
a = a ** 1 a **= 1
IWI-131

Coerción y conversión

Como se ha indicado en puntos previos, el uso de la función type() permite conocer el tipo de dato que tiene un valor literal, pero también se puede conocer el de una variable.

Además, dado que las operaciones o los operandos pueden modificar el tipo de dato puede hacerse necesario realizar cambios en este aspecto.

IWI-131

Cuando a consecuencia de una la operación (por ejemplo, división), ocurre un cambio del tipo de dato no realizado de forma explícita por quien codifico, estamos en presencia de un caso de coerción.

Otro caso de coerción, es cuando los operandos involucrados son de distinto tipo.

IWI-131

Por el contrario, cuando el tipo de dato es modificado de forma explícita se conoce como conversión.

Notar que la conversión es la forma explícita (usamos los tipos de datos como una función) para modificar el tipo de dato, lo que en algunos casos, pueda alterar el valor.

Observación: no siempre se puede convertir un tipo de dato en otro.

IWI-131

Funciones

Respresentan operaciones conocidas por el entorno, y no debe explicitarse las expresiones que la conforman.

Siguen los siguientes puntos:

  • Se llaman por su nombre.
  • Pueden necesitar que se indiquen uno o más parámetros o argumentos, los cuales se indican entre paréntesis, luedo del nombre.
  • Tienen un retorno
  • Importante: Recordar que existen restricciones en cuanto a su uso.
IWI-131
  • abs(1-2) #retorna en valor absoluto.
  • min(1,2,-1) #retorna el mínimo valor.
  • max(1,2,-10) #retorna el valor máximo.
  • pow(x,y) ()
  • round(x,y) (aproxima el número a dígitos).
IWI-131
  • Otras funciones requieren realizar un paso previo: import math
  • math.sqrt(x) ()
  • math.exp(x) ()
IWI-131
  • Otras funciones requieren realizar un paso previo: import random
  • math.randint(y) (genera un número entero de forma aleatoria entre e )
IWI-131
  • Otras funciones requieren realizar un paso previo: import math
  • math.sqrt(x) ()
  • math.exp(x) ()
IWI-131
  • Para "escribir" a la consola se puede usar la función print
  • print("hola mundo")
  • print(1)
IWI-131
  • Para "pedir" valores por la consola se puede usar la función input
  • x = input("Ingrese un valor: ")

  • Explorar con type el tipo de dato

  • ¿Cómo podríamos sumar dos número ingresados desde la consola?

IWI-131

Referencias

  1. Apuntes de programación, Roberto Bonvallet.
IWI-131

Fin

IWI-131

![bg left:35%](https://ensinoteoriadoconhecimento.files.wordpress.com/2018/04/plato_pio-clemetino_inv305.jpg?w=900&h=1366)