epespad

Te enseño lo basico de python

Buen día, taringueros (?), este es mi primer post en hola mundo, y tengo como propósito enseñarte lo básico en Python.
Yo todavía soy un novato en el lenguaje Python, pero creo que se lo suficiente como para darte una pequeña introducción al lenguaje de Python.
Cabe destacar que todo el post y las imagenes estan elaboradas bajo GNU/Linux.
<-------------------------------------Barra separadora (Maldita crisis)------------------------------------->

Diferentes temas que vamos a ver:
1.- ¿Qué es Python?
2.- Historia
3.- Introducción
4.- Variables
5.- Condicionales y Bucles
6.- Funciones
7.- Print y return
8.- "Hola Mundo"
9.- Operadores
10.- Ejemplo

<-------------------------------------Barra separadora (Maldita crisis)------------------------------------->

¿Qué es Python?
Python es un lenguaje de programación de alto nivel cuya filosofía hace hincapié en una sintaxis muy limpia y que favorezca un código legible.

Se trata de un lenguaje de programación multiparadigma ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, usa tipado dinámico, es fuertemente tipado y multiplataforma.

Es administrado por la Python Software Foundation. Posee una licencia de código abierto, denominada Python Software Foundation License, que es compatible con la Licencia pública general de GNU a partir de la versión 2.1.1, e incompatible en ciertas versiones anteriores.

Traducción:
Python es un lenguaje de programación que lo que busca es una sintaxis limpia y un código fácilmente legible, Python es un lenguaje multiparadigma, lo que siginifica que soporta orientación a objetos, programación imperativa (Un programa imperativo es un programa que le dicta instrucciones a la máquina de como hacer una tarea), y, en menor medida, programación funcional (es un paradigma de la programación basado en la utilización de funciones aritméticas). Es un lenguaje interpretado (que es ejecutado mediante un interprete), usa tipado dinámico (significa que las variables pueden cambiar de tipo si así se declara después), y multiplataforma (que se ejecuta en diferentes plataformas).

<-------------------------------------Barra separadora (Maldita crisis)------------------------------------->

Historia
Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemáticas y la Informática (CWI, Centrum Wiskunde & Informatica), en los Países Bajos, como un sucesor del lenguaje de programación ABC, capaz de manejar excepciones e interactuar con el sistema operativo Amoeba.

El nombre del lenguaje proviene de la afición de su creador original, Guido van Rossum, por los humoristas británicos Monty Python.

Van Rossum es el principal autor de Python, y su continuo rol central en decidir la dirección de Python es reconocido, refiriéndose a él como Benevolente Dictador Vitalicio (en inglés: Benevolent Dictator for Life, BDFL).

En 1991, van Rossum publicó el código de la versión 0.9.0 en alt.sources. En esta etapa del desarrollo ya estaban presentes clases con herencia, manejo de excepciones, funciones y los tipos modulares, como: str, list, dict, entre otros. Además en este lanzamiento inicial aparecía un sistema de módulos adoptado de Modula-3; van Rossum describe el módulo como “una de las mayores unidades de programación de Python”. El modelo de excepciones en Python es parecido al de Modula-3, con la adición de una cláusula else. En el año 1994 se formó comp.lang.python, el foro de discusión principal de Python, marcando un hito en el crecimiento del grupo de usuarios de este lenguaje.

Python alcanza³ la version 1.0 en enero de 1994. Una característica de este lanzamiento fueron las herramientas de la programación funcional: lambda, reduce, filter y map. Van Rossum explicó que “hace 12 años, Python adquirió lambda, reduce(), filter() y map(), cortesía de un hacker de Lisp que las extrañaba y que envió parches”. El donante fue Amrit Prem; no se hace ninguna mención específica de cualquier herencia de Lisp en las notas de lanzamiento.

La última versión liberada proveniente de CWI fue Python 1.2. En 1995, van Rossum continuó su trabajo en Python en la Corporation for National Research Initiatives (CNRI) en Reston, Virginia, donde lanzó varias versiones del software.

Durante su estancia en CNRI, van Rossum lanzó la iniciativa Computer Programming for Everybody (CP4E), con el fin de hacer la programación más accesible a más gente, con un nivel de 'alfabetización' básico en lenguajes de programación, similar a la alfabetización básica en inglés y habilidades matemáticas necesarias por muchos trabajadores. Python tuvo un papel crucial en este proceso: debido a su orientación hacia una sintaxis limpia, ya era idóneo, y las metas de CP4E presentaban similitudes con su predecesor, ABC. El proyecto fue patrocinado por DARPA. En el año 2007, el proyecto CP4E está inactivo, y mientras Python intenta ser fácil de aprender y no muy arcano en su sintaxis y semántica, alcanzando a los no-programadores, no es una preocupación activa.

En el año 2000, el equipo principal de desarrolladores de Python se cambió a BeOpen.com para formar el equipo BeOpen PythonLabs. CNRI pidió que la versión 1.6 fuera pública, continuando su desarrollo hasta que el equipo de desarrollo abandonó CNRI; su programa de lanzamiento y el de la versión 2.0 tenían una significativa cantidad de traslapo. Python 2.0 fue el primer y único lanzamiento de BeOpen.com. Después que Python 2.0 fuera publicado por BeOpen.com, Guido van Rossum y los otros desarrolladores de PythonLabs se unieron en Digital Creations.

Python 2.0 tomó una característica mayor del lenguaje de programación funcional Haskell: listas por comprensión. La sintaxis de Python para esta construcción es muy similar a la de Haskell, salvo por la preferencia de los caracteres de puntuación en Haskell, y la preferencia de Python por palabras claves alfabéticas. Python 2.0 introdujo además un sistema de recolección de basura capaz de recolectar referencias cíclicas.

<-------------------------------------Barra separadora (Maldita crisis)------------------------------------->

Introducción
Bien, antes de empezar es necesario saber si tienes python instalado en tu computadora:
Abre la terminal y escribe
python
Te enseño lo basico de python
Ese es un ejemplo de como debería de salir
Aquí dice que tengo la versión 2.7.2 de python instalada en mi equipo.
Si no tienes instalado python en tu equipo, no te preocupes, puedes ir a www.python.org/download/
y descargarlo.
La versión que utilizaremos en esta pequeña guia será para la versión 2, así que algunas partes pueden darte error si utilizas el 3.
NOTA: para hacer comentarios se utiliza el simbolo gato "#"

<-------------------------------------Barra separadora (Maldita crisis)------------------------------------->

Variables

Bien, creo que antes de empezar es necesario darle una buena repasada a las variables en Python, si ya sabes como funcionan te puedes saltar esta sección.
Una variable es un pedazo de memoria que guarda algún dato. El nombre de una variable solo puede estar formada por letras, números, y el guión bajo "_", y solo puede empezar por una letra o guión bajo.

Tipos de variables:

*Integer (int), son los números tanto positivos como negativos.
a = 52
b = 15
c = 572


*Long, es lo mismo que un integer, a diferencia que este se utiliza para almacenar números más grandes,por tanto, ocupando una mayor cantidad de memoria, es recomendado no utilizarlo a menos que sea necesario para no malgastar memoria.
d = 50l (la l es utilizada para declarar una variable tipo long


*float, son los números reales, en palabras entendibles, son números con parte decimal.
e = 52.25
pi = 3.141593

¡Cabe destacar que a la hora de hacer divisiones entre números, si deseas que salgan decimales un número tiene que ser tipo float, de modo contrario saldría la parte decimal![/quote]

*Complex, es el tipo de números con parte imaginaria. Es compuesta por dos variables, una parte real y la otra imaginaria.
f = 2.1 + 7.8j


*String (str), es un conjunto de caracteres encerrados en comillas, ya sean dobles " " o simples ' '.
g = "Este es un texto"
h = "Este es otro texto"
i = "2+5"
j = "g " + "h"

Algo que puedes utilizar con las variables string es la función eval(), que evalua la variable string elaborando las operaciones matemáticas y sustituyendo los nombres de variables por variables.
eval(i)
Daria como resultado:
7
eval(j )
Daria como resultado:
Este es un texto Este es otro texto


*Booleano, una variable booleana, es una variable de verdadero o falso
Buena_economia = false
malos_politicos = true


*List, las listas son variables que almacenan más de un valor, los valores de una lista son almacenados en corchetes "[" y "]" y van separados por comas ","
números = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
compras = ["Leche", "Queso"]

Para agregar otro valor a las listas se utiliza el comando append seguido del valor a agregar entre parentesis
compras.append ("Xbox" )
#En tal caso compras quedaría:
["Leche", "Queso", "Xbox"]

Puedes seleccionar un valor de una lista escribiendo la variable seguida del número en que se encuentra el valor deseado entre corchetes, ¡NOTA: el primer valor de una lista (el que se encuentra hasta la izquierda) es el valor 0
compras[2] nos devolvería el valor "Xbox"

Para seleccionar varios valores podemos usar un corchete, el número desde el cual se quiere empezar a seleccionar (valor por defecto: 0), despues dos puntos, seguido del valor hasta el cual se quiere seleccionar (por defecto el último valor de la lista), y si se desea, otros dos puntos, y de cada cuantos seleccionar, y cerramos con corchetes.
compras[: ] #selecciona toda la lista
compras[::2] #seleccionaría "Queso"
compras [1:2] #Seleccionaria "Queso", "Xbox"

Se puede tener una lista dentro de otra lista
comprar = ["juegos", ["Battlefield 2", "Call of duty", "Halo"]]

y para acceder a una lista dentro de la lista
comprar[0][2] #lo que devolvería "Halo"


*tuplas, es una lista pero en vez de que los valores esten entre corchetes estarían entre parentesis, una tupla ocupa menos espacio que una lista pero tiene menos funciones que una lista, además que una tupla es inmutable, lo que quiere decir que si una tubla ha sido definida sus valores no pueden cambiar. En realidad la tupla se declara por la coma y no por el parentesis, pero de cualquier modo hay que incluir el parentesis por claridad.
mi_tupla = ("hola", "Mundo" )

También se pueden acceder a valores de una tupla como lo hacíamos con una lista
mi_tupla[: ] #Regresaría "hola", "Mundo"

Si tienes que hacer una lista básica y sabes que ya no le vas a cambiar valores, es mejor una tupla en lugar de una lista.

# Un string se puede acceder de la misma manera que una tupla y una lista.
k = "hola mundo"
k[:2] #Devolvería "hol"
k[5:6] #Devolvería "mu"


*Diccionarios, son variables que guardan una clave y un valor para la clave
l = {"Presidentes" : "Persona que cree saber", "Hola Mundo" : "Página web dedicada a la programación"}

Para entrar a un valor en un diccionario se utiliza el nombre de la variable seguido por corchetes y la palabra clave dentro de los corchetes
l["Presidentes"] #Devuelve "Persona que cree saber"
l["Presidentes"] = "Ojete" #Para cambiar el valor para la clave


Terminamos las variables

<-------------------------------------Barra separadora (Maldita crisis)------------------------------------->

Condicionales y bucles
*if, en español "si", es una condicional que evalua si el valora evaluar es correcto, si es correcto, se ejecuta, en caso contrario no se ejecuta. (acabamos de utilizar una sentencia if)
if lluvia === true: #palabra if, seguido del valor a evaluar, seguido de dos puntos
paraguas = true #En python no se utilizan las llaves { } para bucles ni condicionales, si no que se escriben cuatro espacios para determinar que lo que esta despues de los 4 espacios se tiene que ejecutar
#En lenguaje humano sería: Si está lloviendo: llevar paraguas

+else, else se ejecuta en caso de que devuelva falso al evaluar el valor en if.
if lluvia === true:
paraguas = true
else: #else seguido de dos puntos
paraguas = false

+elif, elif se utiliza si el primero valor en if da falso, podemos evaluar otro valor
if lluvia === true:
paraguas = true
elif sol === true:
bloqueador = true
else:
salir = "Puedes salir sin utilizar nada"



*while, el bucle while (mientras), es utilizado para ejecutar codigo mientras la evaluación del valor sea correcto
i = 0
while i < 4: #While, seguido de la evaluación, seguido de dos puntos
print i #Codigo a ejecutaro si while mientras while sea verdadero (la palabra print, imprime el valor escrito después de la misma)
i = i + 1 #No queremos que nuestro bucle while se ejecute para siempre o si?

También podemos utilizar la palabra reservada break para detener el bucle
i = 0
while i < 4
print i
break #Rompería el bucle justamente despues de imprimir i


*for, si conoces el bucle for en otros lenguajes de programación, el bucle for de python te va a sorprender gratamente, pongamos un ejemplo y lo explicamos
for i in range(3):
print i #No nos olvidemos de los 4 espacios
#Imprimiría
0
1
2

Escribimos la palabra for, seguido de cualquier palabra (regida por las mismas reglas que la variable), seguido por la palabra in. Despues de eso la parte puede cambiar.
En este ejemplo exacto, la palabra range crea una lista con tantos números como le indiquemos a la derecha en parentesis (Recordemos que una lista de 3, es una lista del 0 - 2, por lo que si queremos una lista hasta el 3, tenemos que poner el 4)
El bucle for, lo que hace, es que toma la variable que le pongamos (i), y le va asignando cada uno de los valores que le digamos (0 - 2), una vez que termina la lista, el bucle for se rompe.
lista = [1,2,3,4] #Creamos una lista
for i in lista: #Utilizamos el bucle for, la variable i, seguido de in, y despues la variable lista, lo que tomaría los valores de la lista
print i #4 espacios muy importante
#Imprimiría
1
2
3
4

Lo que hacemos aquí, es utilizar el bucle for en la variable lista, tomando cada uno de los valores de la lista, y asignandoselos a i.
Aquí dejo un ejemplo algo curioso
a = "hola"
for variable in a: #podemos utilizar cualquier palabra valida dentro de las reglas de variable
print variable
#Imprimiría
h
o
l
a

Como habiamos visto, un string puede ser utilizado parecido como a la lista

<-------------------------------------Barra separadora (Maldita crisis)------------------------------------->

Funciones

Una función, nos ahorraría la molestia de estar escribiendo el mismo codigo una y otra vez, ademas de que si queremos que el resultado sea diferente, utilizamos los parametros que van en parentesis, bueno ahorita lo explico
def saludo(): #Utilizamos def para declarar la función, segudio del nombre y parentesis, si lleva parametros lo ponemos en los parentesis, y terminamos con dos puntos
print "hola" #4 espacios, importante. Aquí ponemos el codigo a mostrar por la función
#Ahora hay que llamarla
saludo() #El nombre seguido de los parentesis
hola #Es lo que imprimiría

Veamos los parametros
def saludo2(nombre) #Declaramos otra función y ponemos un parametros en los parentesis
print "hola", nombre #Lo que hacemos aquí, es imprimir la palabra hola, seguida del parametro nombre
saludo2("ana" ) #Le ponemos un valor al parametro, lo que hace que el parametro nombre, ahora sea ana
hola ana #Esto es lo que imprmiría, ya que le decimos a la función que nombre lo tiene que cambiar por ana

Esto sirve para hacer una calculadora

def cuadrado(n):
print n * n
#Aquí lo que hacemos es declarar una función llamada cuadrado, con el parametro n, y devolvemos n por n, o en otras palabras, devolvemos su cuadrado
cuadrado(5) #Llamamos la función cuadrado, y en parentesis ponemos 5, lo que cambiaría en este momento la letra n por 5, multiplicando 5 por 5
25 #Esto es lo que nos devolvería


<-------------------------------------Barra separadora (Maldita crisis)------------------------------------->

Print y return

Bien, hasta aquí, hemos estado utilizando print.
Print lo que hace es imprimir en pantalla lo que le digamos que imprima, lo que en algunos casos puede resultar útil, pero en otros casos queremos devolver un valor para poder utilizarlo en otro lugar
Return lo que hace es que nos devuelve el valor que le pongamos
def cuadrado(n):
print n * n
#Aquí lo único que hace es que imprime los el cuadrado del número que le digamos
#En cambio, si utilizamos return
def cuadrado2(n):
return n * n
#Mira lo que podemos hacer
5 * cuadrado(3)
#Imprimiría 9, y nos devolvería error
#En cambio con return
5 * cuadrado2(3)
45 #La función cuadrado2 devolvería 9, y ahora si lo podemos multiplicar por 5
#También podemos utilizar return para esto
cuadrado_de_2 = cuadrado2(2) #Asignamos a la variable cuadrado_de_2 el valor que regresa cuadrado2(2) en este caso
print cuadrado_de_2 #imprimimos la variable para ver a cuanto equivale
4 #Y para esto y otras cosas es mejor utilizar return


<-------------------------------------Barra separadora (Maldita crisis)------------------------------------->

"Hola Mundo"

Veamos el típico ejemplo del programa hola mundo
print "hola mundo"

Así de facil, imprimiría la palabra hola mundo el interprete
NOTA: Como ya dije, este tutorial se basa en la versión 2 de python, por lo que si utilizas la versión 3 te dará error, para solucionarlo, hay que escribir la palabra "hola mundo" en parentesis

Programacion

NOTA: Como podemos observar antes del hola mundo, se encuentra otra linea de codigo, esto sirve para poder ejecutar un programa de python en linux, indicandole donde se encuentra el interprete de python en este caso user/bin/python, hay que interponerlo con un gato # y un signo de exclamación para abajo ! , #!user/bin/python

<-------------------------------------Barra separadora (Maldita crisis)------------------------------------->

Operadores

Operadores de comparación:
=== #Se utiliza para verificar si hay igualdad entre dos variables Nota: se utiliza = para asignar un valor a una variable
< #Verifica si la primer variable es menor que la segunda
> #Verifica si la primer variable es mayor a la segunda
<= #Verifica si la primer variable es menor o igual a la segunda
>= #Verifica si la primer variable es mayor o igual a la segunda
!= #Verifica que la primer variable no sea igual a la segunda


Operadores para operaciones:
+ #Suma dos valores
- #Resta dos valores
* #Multiplica dos valores
/ #Divide dos valores devolviendo entero
// #Divide dos valores devolviendo entero y decimal
% #Devuelve el resto de una división
** #Eleva el primer número al segundo


Operadores a nivel de bit:
and #Verifica si que las dos variables sean verdaderas para continuar
or #Verifica que una u otra variable sea verdadera para continuar
not #Verifica que la variable sea falsa


<-------------------------------------Barra separadora (Maldita crisis)------------------------------------->


Práctico ejemplo

Bien, este es el mejor ejemplo que encuentro para probar las funciones.
Los números de fibonacci.
0,1,1,2,3,5,8,13,21,34,55
Bien, en este ejemplo, se suma un número al anterior para sacar el proximo número

Les dejaré de tarea para el que quiera, hacer una función que tu selecciones la posición que quieras ver que número va dentro de este

def fibonacci(n):
#Tu codigo aqui


Así, si quiero saber el número que va en la posición 5 pongo

fibonacci(5)
5 #Y el número que se encuentra en la posición 5 es el 5
fibonacci(7)
13


Ayuda
Recuerden que un número se saca sumando los dos números que le anteceden, por ejemplo:
El número 13 de la lista, se saca sumando el 8 y el 5.

Ahora es tu turno de hacer el ejercicio, cualquier duda mandame un mp.

<-------------------------------------Barra separadora (Maldita crisis)------------------------------------->

Donde aprender python

Hay muchas páginas donde aprender Python.
Khan Academy
Codecademy(proximamente)
También busca tutoriales en pdf de python, los encuentras en todos lados


DISCULPEN EL CIFRADO DE EL TEXTO (LOS SIMBOLOS RAROS)


MAS TUTORIALES, INFORMACION, PROGRAMAS, JUEGOS, RECURASOS Y MAS EN
www.codepost.com.ar
EL SITIO PARA LOS PROGRAMADORES

9 comentarios - Te enseño lo basico de python

xXCHAKAXx -2
y por que mierda escribis asi pelotudo
Lucho_7722 +2
Lástima que no se entiende mucho, pero igual esta muy bueno
EAMP14
Lindo Copy&amp;Paste
EAMP14
TarentooH dijo:
EAMP14 dijo:Lindo Copy&amp;Paste


no, lo hice yo en codepost.com.ar y lo pase a taringa, y gracias por los 2 pts


los unicos que me quedaban
Y supongo que eso explica lo de las &quot; ´ &quot; aun asi, hiciste un Copy&amp;Paste de lo que hiciste .-.
zagio
Buen post, no obstante faltan links de descarga... cuando pongas van puntos
garron
Gracias. Me aclaraste la diferencia entre print y return.