Clase 2: El Lenguaje Python

Documentos relacionados
Clase 3: Usando los sensores

Introducción a Python. Cecilia Manzino

Un calculadora avanzada... y algo más!

Primeros pasos programando en Python

PYTHON. Programación básica

Estructura de un programa en Java. Tipos de datos básicos. class miprimerprograma{ // comentario, no es parte del programa

ING1310 Introducción a la Computación. Python. Conceptos Básicos. Carlos Reveco

introducción a la computación

PYTHON. Programación estructurada

JavaScript: Operadores

Apunte Laboratorio ALPI - El lenguaje de programación Pascal

INTRODUCCIÓN A LA PROGRAMACIÓN. 1º Bachillerato

Tipos de Datos de python (2ª parte):

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)

Estructuras de control: Las variables: Fuertemente tipado: Tipado dinámico: Variables booleanas: Qué son las estructuras de control?

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

Operadores aritméticos

La resolución de problemas es una tarea únicamente humana comprobable en todos los casos con los mismos resultados.

Componentes Básicos. InCo. InCo Componentes Básicos 1 / 28

GLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo:

Principios de Computadoras II

Guía práctica de estudio 05: Pseudocódigo

Procesadores de lenguajes Ingeniería Informática Especialidad de Computación Tercer curso, segundo cuatrimestre

crear con python Materiales de inicio a la programacion con codigo Ejercicios practicos con soluciones

Introducción a PL/SQL

Primeros Pasos en Python 3

Programar en TortuBots

Shell Script Sistemas Operativos III - ITS EMT - CETP

Procesadores de lenguajes Ingeniería Informática Especialidad de Computación Tercer curso, segundo cuatrimestre

DISEÑO ESTRUCTURADO USANDO HERRAMIENTAS DE

Una clasificación de los tipos de datos existentes en los diferentes lenguajes de programación se presenta a continuación:

CAPÍTULO IV: 4.1 Introducción a la. Programación Funcional

Introducción a la programación. Proyecto de Robótica Educativa

Autoestudio 2: Variables y Operadores

Algoritmo, Estructuras y Programación I Ing. Marglorie Colina

Pre-Laboratorio 1 MA-33A : Introducción a Matlab

Introducción a Python Qué es Python?

Las expresiones son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales.

Taller de programación shell

El lenguaje C. 1. Identificadores, constantes y variables

PHP: Lenguaje de programación

Datos Elementales y formato de un programa en Java

El pseudocódigo es una herramienta de programación en la que las instrucciones se escriben en palabras similares al inglés o español, que facilitan

Fundamentos de Programación

TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL.

Tema 2. Concepto de Algoritmo

Características de JavaScript

Introducción rápida a la programación (estructurada ) con C++

Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

Tema 3. Estructuras de Datos

Operadores. Java es un lenguaje rico en operadores, que son casi idénticos a los de C/C++.

Informática General 2018 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

Sintaxis de PSeInt Tutorial

Python. Características Básicas

Diseño Computarizado 15023

PROCESADORES DE LENGUAJE. Hoja de ejercicios de FLEX

EXPRESIONES Y OPERADORES

Variables, expresiones y sentencias

ESTRUCTURA DE ASIGNACIÓN

JavaScript Básico. Elementos Básicos: Comentarios: Literales: Valores que puede tomar una variable o una constante.

INSTITUTO SUPERIOR DE EDUCACION RURAL ISER FUNDAMENTOS DE PROGRAMACION

Tema 4. Control de flujo. Programación Programación - Tema 4: Control de Flujo

abril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples

Tema: Estructuras de Selección en C#.

GUÍA BÁSICA DE SCHEME v.4

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

PRINCIPIOS DE PROGRAMACIÓN. Mtro. en Ingeniería de Software. Especialidad en e-commerce Ismael Jiménez Hernández

Introducción a Python

PROCESADORES DE LENGUAJE. Hoja de ejercicios de FLEX

Introducción a la Programación

Tema 2: Elementos básicos de un programa. Tipos de datos, variables y constantes Asignación Operadores y expresiones

Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE)

Operaciones aritméticas

Guía de Trabajos Prácticos Nº 4

Curso de Java Introducción a la Programación III

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

Comprender las diferencias entre tipos de datos primitivos similares, y aprender a elegir el tipo más conveniente en cada caso.

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

Introducción a C++ Algoritmos y Estructuras de datos II Dra. Carmen Mezura Godoy. Febrero 2009

Tema 2: Desarrollo de Algoritmos. E.E. de Algorítmica

REFERENCIA DEL LENGUAJE

El programa en JavaScript debe ir encerrado entre la marca script e inicializada la propiedad type con la cadena text/javascript:

1. Explorando la ventana Python

Repetición Condicional

Programación Estructurada

Resolución de Problemas y Algoritmos

Informática. JavaScript: Lenguaje de programación. Fco J. Martín Mateos Carmen Graciani

Informática General Cátedra: Valeria Drelichman Pedro Paleo Leonardo Nadel Norma Morales

import math # Importa la libreria math, que permite utilizar operaciones y funciones matematicas

Palabras reservadas de C++ y C. Una palabra reservada no puede declararse como un identificador, esto haría un conflicto entre conectores y funciones.

Transcripción:

Agosto 2012

Clase 2 Temario Consideraciones generales Operadores y expresiones Variables y Tipos Funciones Las Estructuras de Control Guía práctica

Primer curso de programación usando robots y Python Objetivos El objetivo de esta clase es dar las características generales sobre la sintaxis de Python

Python Características Básicas Es interactivo Multi plataforma Permite una programación prolija e intuitiva Es posible programar aplicaciones complejas Muy usado Es software libre Monty Python

Operadores básicos Operadores Aritméticos + - * / % Suma de números Resta Multiplicación División Resto de división entera Ejemplos Ejemplo 10 / (2-3) 7 / 3 5 / 2.0 Resultado 2 2 2.5

Operadores básicos Operadores Aritméticos + - * / % Suma de números Resta Multiplicación División Resto de división entera Ejemplos Ejemplo 10 / (2-3) 7 / 3 5 / 2.0 Resultado 2 2 2.5

Operadores básicos Operadores de Caracteres + * Ejemplos Hola + Argentina! Hola * 3 Concatenación Repetición Hola Argentina! HolaHolaHola

Operadores básicos Operadores de Caracteres + * Ejemplos Hola + Argentina! Hola * 3 Concatenación Repetición Hola Argentina! HolaHolaHola

Variables Las variables son nombres que apuntan o representan datos Se asocian a los datos a través de la sentencia de asignación ( = ) Sus nombres pueden contener letras, números o el símbolo de subrayado(_), pero DEBE comienzan con una letra Hay sensibilidad a mayúsculas y minúsculas Identificadores Correctos casa12 casa_12 Casa_12 Incorrectos 12casa casa! mi casa

Variables Las variables son nombres que apuntan o representan datos Se asocian a los datos a través de la sentencia de asignación ( = ) Sus nombres pueden contener letras, números o el símbolo de subrayado(_), pero DEBE comienzan con una letra Hay sensibilidad a mayúsculas y minúsculas Identificadores Correctos casa12 casa_12 Casa_12 Incorrectos 12casa casa! mi casa

Ejemplo Queremos calcular el área de un círculo de radio 10: radio = 10 pi = 3.14159 area = pi * radio * radio print area Esto imprimirá 314.15 en la pantalla

Funciones Una función agrupa un conjunto de sentencias. Puede tener argumentos Sintaxis: def nombre(lista de parámetros): sentencias

Funciones Para ejecutar un función se la debe invocar: nombre(parametros) Y el valor retornado, puede asignarse a una variable: resultado = nombre(parametros) O imprimirse en pantalla, por ejemplo. print nombre(parametros)

Funciones Para ejecutar un función se la debe invocar: nombre(parametros) Y el valor retornado, puede asignarse a una variable: resultado = nombre(parametros) O imprimirse en pantalla, por ejemplo. print nombre(parametros)

Funciones Para ejecutar un función se la debe invocar: nombre(parametros) Y el valor retornado, puede asignarse a una variable: resultado = nombre(parametros) O imprimirse en pantalla, por ejemplo. print nombre(parametros)

Funciones Una función tiene un encabezado y un cuerpo: def nombre(parametros): Encabezado de la función sentencia1 sentencia2 sentencia3 Cuerpo de la función CUIDADO CON LA INDENTACION!!!!!

Funciones Una función tiene un encabezado y un cuerpo: def nombre(parametros): Encabezado de la función sentencia1 sentencia2 sentencia3 Cuerpo de la función CUIDADO CON LA INDENTACION!!!!!

Funciones Una función tiene un encabezado y un cuerpo: def nombre(parametros): Encabezado de la función sentencia1 sentencia2 sentencia3 Cuerpo de la función CUIDADO CON LA INDENTACION!!!!!

Funciones Dibujamos un cuadrado? def cuadrado(): mi_robot.forward(50, 0.5) mi_robot.turnright(35, 1) mi_robot.forward(50, 0.5) mi_robot.turnright(35, 1) mi_robot.forward(50, 0.5) mi_robot.turnright(35, 1) mi_robot.forward(50, 0.5) mi_robot.turnright(35, 1) Siempre se mueve la misma distancia No retorna ningún valor

Funciones Dibujamos un cuadrado? def cuadrado(): mi_robot.forward(50, 0.5) mi_robot.turnright(35, 1) mi_robot.forward(50, 0.5) mi_robot.turnright(35, 1) mi_robot.forward(50, 0.5) mi_robot.turnright(35, 1) mi_robot.forward(50, 0.5) mi_robot.turnright(35, 1) Siempre se mueve la misma distancia No retorna ningún valor

Funciones Dibujamos un cuadrado? def cuadrado(): mi_robot.forward(50, 0.5) mi_robot.turnright(35, 1) mi_robot.forward(50, 0.5) mi_robot.turnright(35, 1) mi_robot.forward(50, 0.5) mi_robot.turnright(35, 1) mi_robot.forward(50, 0.5) mi_robot.turnright(35, 1) Siempre se mueve la misma distancia No retorna ningún valor

Funciones Y si le pasamos parámetros? def cuadrado(tiempo): mi_robot.forward(50, tiempo) mi_robot.turnright(35, 1) mi_robot.forward(50, tiempo) mi_robot.turnright(35, 1) mi_robot.forward(50, tiempo) mi_robot.turnright(35, 1) mi_robot.forward(50, tiempo) mi_robot.turnright(35, 1) Podemos invocar esta función con distintos argumentos cuadrado(0.5) cuadrado(1)

Funciones Y si le pasamos parámetros? def cuadrado(tiempo): mi_robot.forward(50, tiempo) mi_robot.turnright(35, 1) mi_robot.forward(50, tiempo) mi_robot.turnright(35, 1) mi_robot.forward(50, tiempo) mi_robot.turnright(35, 1) mi_robot.forward(50, tiempo) mi_robot.turnright(35, 1) Podemos invocar esta función con distintos argumentos cuadrado(0.5) cuadrado(1)

Programa - Módulo Guardar código en un archivo. Ejecutar muchas veces. Evitar repetir escritura de código en el intérprete. Reutilización. Uitlización de un IDE: Geany - Pyshell.

Programa - Módulo Guardar nuestro código en el IDE. Extensión.py. Programa script. #!/usr/bin/python print "Hola mundo" Programa sin path. print "Hola mundo" Lo ejecutamos en la terminal./hola.py Lo ejecutamos en la terminal python hola.py

Programa - Módulo Formas de importar: import modulo from modulo import * Escribir nuestro código en un archivo separado. movimientos.py Importar def dudo(rob): rob.forward(50,2) rob.backward(50,2) import movimientos movimientos.duda(r)

Programa - Módulo Realizar cambios en el módulo, modifico movimientos.py def dudo(rob): rob.forward(50,2) rob.backward(50,2) def giro(res) res.turnleft(40, 4) res.turnright(40, 4) Importar movimientos = reload( movimientos) movimientos.giro(robot) movimientos.dudo(robot)

Estructuras de Control Tomando decisiones La sentencia if permite ejecutar un bloque de código en forma condicional Sintaxis: if ( expresion booleana): sentencia sentencia El bloque indentado se ejecuta sólo si la expresión lógica es verdadera

Sentencia if def avanzar(robot, velocidad, tiempo): if velocidad < 20: robot.forward(29, tiempo) Cómo usamos esta función? from duinobot import * b=board("/dev/ttyusb0") mi_robot=robot(b,0) avanzar(mi_robot, 50, 2)

Sentencia if def avanzar(robot, velocidad, tiempo): if velocidad < 20: robot.forward(29, tiempo) Cómo usamos esta función? from duinobot import * b=board("/dev/ttyusb0") mi_robot=robot(b,0) avanzar(mi_robot, 50, 2)

Expresiones Booleanas Existe tipo Boolean, con valores True y False Operadores Relacionales < > ==!= Operadores Lógicos and: Retorna True si ambas expresiones son verdaderas or: Retorna False si ambas expresiones son falsas not: Invierte el valor de verdad de una expresión Menor Mayor Igual Distinto n == 4 and n > 10 n == 4 or n > 10 not (n <> 0)

Sentencia if Muchas veces necesitamos indicar distintas acciones, de acuerdo a una condición. def avanzar(robot, velocidad, tiempo): if velocidad < 20: robot.forward(20, tiempo) else: robot.forward(velocidad, tiempo)

Sentencia if Muchas veces necesitamos indicar distintas acciones, de acuerdo a una condición. def avanzar(robot, velocidad, tiempo): if velocidad < 20: robot.forward(20, tiempo) else: robot.forward(velocidad, tiempo)

Sentencia if Cuando tenemos varias opciones print "Indicanos hacia qué dirección te gustaría mover el robot:" print "1.- Girar a la derecha" print "2.- Girar a la izquierda" print "3.- Avanzar" print "4.- Retroceder" opcion=raw_input("opción:") if opcion=='1': robot.turnright(100,1) elif opcion=='2': robot.turnleft(100,1) elif opcion=='3': robot.forward(100,1) elif opcion=='4': robot.backward(100,1) else: robot.stop() La sentencia raw_input me permite leer caracteres desde el teclado

Sentencia if Cuando tenemos varias opciones print "Indicanos hacia qué dirección te gustaría mover el robot:" print "1.- Girar a la derecha" print "2.- Girar a la izquierda" print "3.- Avanzar" print "4.- Retroceder" opcion=raw_input("opción:") if opcion=='1': robot.turnright(100,1) elif opcion=='2': robot.turnleft(100,1) elif opcion=='3': robot.forward(100,1) elif opcion=='4': robot.backward(100,1) else: robot.stop() La sentencia raw_input me permite leer caracteres desde el teclado

Estructuras de Control Repitiendo Instrucciones La sentencia while permite ejecutar un bloque de código mientras se cumpla una determinada condición Sintaxis: while ( expresion booleana): sentencia sentencia El bloque indentado se ejecuta tantas veces mientras la expresión lógica es verdadera

Sentencia while Ejemplo: def decido_movimiento(robot): print('''acción para mover el robot: 1.- Girar a la derecha 2.- Girar a la izquierda 3.- Avanzar 4.- Salir''') opcion=raw_input("opción:") while (opcion!= '4'): if opcion=='1': robot.turnright(100,1) elif opcion=='2': robot.turnleft(100,1) elif opcion=='3': robot.forward(100,1) else: print "Ingresaste una opción no válida." opcion = raw_input("opción: ")

Estructuras de Control Repitiendo Instrucciones La sentencia for permite ejecutar un bloque de código un número fijo de veces Sintaxis: for var in lista_de_valores: sentencia sentencia El bloque indentado se ejecuta tantas veces como elementos tenga la lista de valores La variable var toma todos los valores de la lista_de_valores

Sentencia for Ejemplo for i in [1,2,3]: robot.forward(50, 0.5) robot.bakckward(50, 0.5) robot.turnright(35, 1) robot.turnleft(35, 1) La variable i toma los valores, 1, 2 y 3. Y si quiero repetir 1000 veces esto?

Sentencia for La función range permite generar listas en forma automática >>> range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> range(3, 8) [3, 4, 5, 6, 7] >>> range(0, 10, 2) [0, 2, 4, 6, 8] >>> range(7, 3, -1) [7, 6 5, 4] >>> range(-10, -100, -30) [-10, -40, -70] Prestemos atención al valor final de la lista Siempre es uno menos que el valor indicado

Sentencia for Ejemplo for i in range(1,101): robot.forward(50, 0.5) robot.backward(50, 0.5) robot.turnright(35, 1) robot.turnleft(35, 1) En este caso, la variable i toma los valores desde 1 hasta 100

Sentencia for Ejemplo for i in range(1,101): robot.forward(50, 0.5) robot.backward(50, 0.5) robot.turnright(35, 1) robot.turnleft(35, 1) En este caso, la variable i toma los valores desde 1 hasta 100

Primer curso de programación usando robots y Python Ahora si.. A trabajar!!..