Date post: | 28-Jul-2015 |
Category: |
Education |
Upload: | mariano-reingart |
View: | 230 times |
Download: | 0 times |
Intro a la programación PythonMariano Reingart
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*
“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 ")
Documentación y Ayuda Python●Documentación Oficial: http://docs.python.org/●Python Argentina: Aprendiendo Python●Cátedra 7540rw FI UBA (apuntes - ejercicios)●Libro Python para todos●Python para Zombis* (MOOC)
(próximamente en español…)●Tutorial Oficial Python●Programando con Robots
(UNLP - LIFIA)●Diplomatura en Software Libre
(Universidad del Este)●Pilas Engine (Juegos)
* Se tomaron algunas imágenes y conceptos para esta presentación
¿Preguntas?
Intro a la programación PythonMariano Reingart
[email protected]@reingart (twitter)
Mini-Clase Profesorado UTN - 26 Abril de 2015
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.