mini clase intro programación python utn profesorado 2015

25
Intro a la programación Python Mariano Reingart [email protected] Mini-Clase - 26 Abril de 2015 Observación y Práctica de la Enseñanza Prof. Mónica Fernández Carry Profesorado UTN FRA INSPT

Upload: mariano-reingart

Post on 28-Jul-2015

232 views

Category:

Education


0 download

TRANSCRIPT

Intro a la programación PythonMariano Reingart

[email protected]

Mini-Clase - 26 Abril de 2015Observación y Práctica de la Enseñanza

Prof. Mónica Fernández Carry Profesorado UTN FRA INSPT

Introducción: ¿Qué es Python?

●Lenguaje de Programación creado por GvR en '90● Iniciativa “Programación para Todos”●Sintaxis clara y limpia => código legible●Lenguaje interpretado ("script"),

no compilado código nativo, flexibilidad vs velocidad, pseudocódigo intermedio (bytecode)

●Multiplataforma: Unix, Windows, Mac, ...●Multiparadigma: estructurado, funcional, orientado a

objetos, orientado a aspectos

Introducción: ¿Por qué Python?

●Lenguaje “natural” (inglés) simplificado●Agrupación por sangría sin {}●Dinámico●Tipos de datos de alto nivel●Gestión de memoria automática●Gran cantidad de librerías●Extensibilidad

●Fácil de aprender●Desarrollo rápido de aplicaciones●Código más mantenible●No recomendable: bajo nivel o rendimiento crítico*

¿Quién usa Python?

Tendencias laborales

“Relevamientos” a largo plazoÍndice TIOBE Abril 2015

Tendencias (red social consultas)1° lenguaje de propósito general más deseado5° lenguaje más popular

Encuesta 2015:● global● 26 mil casos● sesgos (idioma)

Red social líderpreguntas yrespuestas técnicas

Tendencias combinadas...Ranking:

1° JavaScript2° Java3° PHP4° Python5° C#5° C++...

Red social de programación →

Instalación

●Implementación estándar: CPython (rápida y estable)

●Alternativas: Jython (Java), IronPython (.Net), PyPy

●CPython: preinstalado Linux y Mac● Instaladores: http://www.python.org/download/ ●Versiones disponibles:

○2.7.9: final - solo bugfix - mayor compatibilidad○3.4: estable, levemente incompatible hacia atrás

Herramientas básicas● Intérprete (línea de comandos) ●Ejecuta scripts (a.k.a. programas)

● IDLE: Intérprete/IDE gráfica (predeterminado)● IPython: interpreter mejorado● IDEs: PyDev (Java), PTVS,

Komodo, WingIDE, etc.

Primer ProgramaIngresar al intérprete, escribir:

>>> print "hola mundo!"hola mundo!

Comparativa en otros lenguajes de programación...:

public class HelloWorld { public static void main(String[] args) { System.out.println("Hola Mundo"); }}

#include <iostream.h>main(){ cout << "Hola mundo ";}

program Hola; begin writeln ('Hola, mundo.') end.

/* Programa hola mundo */#include <stdio.h>main(){ printf("Hola mundo");}

Estructura básica●Palabras claves: and as assert break class

continue def del elif else except exec finally for from global if import in is lambda not or pass print raise return try while with yield

●Operadores: + - * ** / // % << >> & | ^ ~ < > <= >= == != <>

●Separadores: , : . ` = ; += -= *= /= //= %= &= |= ^= >>= <<= **= ( ) [ ] { } @

●Built-in: funciones, objetos y clases incorporadas en el lenguaje por defecto

●Sangría, espaciado y unión de líneas (\)

Programa básico

#!/usr/bin/python# -*- coding: latin1 -*-

# sumo dos variables (comentario)a = 2 # enterob = 1.5 # punto flotanteprint a + b

# pregunto el nombre, imprimo saludonombre = raw_input("ingrese su nombre")mensaje = "hola" print mensaje, nombre

Control de flujo: condicionales ifif condición1: bloque si se cumple condición1elif condición2: bloque si se cumple condición2else: bloque en caso contrario

numero = int(raw_input("Ingrese un numero:"))if numero < 0: print "Negativo"elif numero > 0: print "Positivo"else: print "Cero"

Control de flujo: bucles whilewhile condición: bloque si se cumple condición continue # vuelve al comienzo break # interrumpo el ciclo

else: bloque si no se ha interrumpido

edad = 0while edad < 18: edad = edad + 1 print "Felicidades, tienes " + str(edad)print "Felicidades, ya es mayor de edad!"

Control de flujo: iteraciones forfor elemento in secuencia: bloque que se repite continue # vuelve al comienzo break # interrumpo el ciclo

else: bloque si no se ha interrumpido

for elemento in ["uno", "dos", "tres"]: # este bloque se repite 3 veces print elemento

for i in xrange(0, 100, 2): print i

Funciones:●Fragmentos de código (con o sin nombre*)●Pueden recibir argumentos y devuelven un

valor (o None)

def funcion(argumento1,argumento2=100): "Esta función hace..." bloque de código return valor

def saludar(nombre, saludo="hola "): print saludo, nombre

saludar("Mariano", saludo="Buenos días ")

¿Preguntas?

Intro a la programación PythonMariano Reingart

[email protected]@reingart (twitter)

Mini-Clase Profesorado UTN - 26 Abril de 2015

Bonus Track 1

Trabajos Alumnos: Raspberry Pi + Electrónica

Bonus Track 2

Trabajos Alumnos: Raspberry Pi + Domótica

Bonus Track 3

Aprendiendo a programar con Robot N6

Bonus Track 4

Desarrollo web Trabajo Final (web2py)Repositorio: GoogleCode → GitHub

Bonus Track 5

¡Programación para todos!program.ar (iniciativa Ministerio Educación)

¡Gracias!

Intro a la programación PythonMariano [email protected]

@reingart +MarianoReingartreingart.blogspot.com github.com/reingart www.slideshare.

net/reingartMini-Clase Profesorado UTN - 26 Abril de 2015

Copyright (C) 2009 - 2015 Mariano Reingart [email protected] - Visite el sitio http://reingart.blogspot.com/ para novedades. Salvo indicación contraria, el texto de esta presentación está disponible bajo la Licencia Creative Commons Atribución Compartir Igual 3.0 Unported; podrían ser aplicables cláusulas adicionales. Las imágenes, marcas y otros contenidos son propiedad de sus respectivos titulares. Toda información es proporcionada solo a Titulo Informativo.S.E.U.O.