07 julio 2013

Python básico para programadores

Unas nociones básicas de Python, para gente que ya ha programado en algún otro lenguaje...

Entrada/salida básica

La orden para escribir es "print". En Python 3 necesita paréntesis (es una función), pero no los necesita en versiones anteriores.
Podemos pedir datos al usuario mediante consola con "input". Si los datos son numéricos, podemos usar "int(input())" para convertirlos.
Las líneas no necesitan punto y coma: cada orden termina al final de la línea correspondiente.
No es necesario declarar "variables": se inicializan automáticamente la primera vez que se usan, y el tipo de datos se deduce automáticamente a partir de su declaración:

print ("Dime un numero")
primerNumero = int( input() )
print ("Dime otro numero")
segundoNumero = int( input() )
print ("Su suma es ")
print (primerNumero + segundoNumero)
 

Condiciones

Existe una orden "if" para comprobar condiciones. La condición que se verifica no necesita estar indicada entre paréntesis, al contrario que en los lenguajes que derivan de C (como C, C++, C#, Java, PHP y algún otro).
La línea del "if" debe terminar con un símbolo de "dos puntos", y todo el bloque de órdenes que se va a ejecutar en caso de que se cumpla la condición, estará tabulado algo más a la derecha (típicamente 4 espacios; el mínimo es dos... o un carácter de tabulación).
Para indicar qué hacer si no se cumple la condición, tenemos una cláusula "else" opcional, que también debe ir seguida por un símbolo de "dos puntos":

num1 = int(input( "Dime un numero " ))
num2 = int(input( "Dime otro numero " ))
if num1 > num2:
    print( "El primero es mayor" )
else:
    print ("El segundo es mayor" )
 

Condiciones múltiples

No existe "switch" o "case", pero se pueden enlazar varios "if" sin necesidad de tabular cada vez más a la derecha, si se emplea "elif" (abreviatura de "else if"):

nota = int(input("Introduzca la nota "))
if nota == 10:
    print ("Sobresaliente alto")
elif nota == 9:
    print ("Sobresaliente bajo")
elif nota == 8:
(...)
 

Repeticiones

Podemos repetir bloques de órden con "while", que tiene una sintaxis muy similar a "if". No existe un repeat-until, ni un do-while, que se pueden conseguir modificando ligeramente la estructura del "while" para garantizar que siempre se dé un primer paso:

print ("Dime un numero")
x = int( input ( ) )
suma = 0
while x != 0:
  suma = suma + x
  print ("La suma es {}".format(suma) )
  print ("Dime otro numero")
  x = int( input ( ) )
print ("Terminado")
 

Contadores

Si queremos contar del uno al 10, lo podemos hacer con un "while", pero también existe una orden "for", que recorre los valores de un conjunto; si se trata de un contador, lo habitual es crear un "rango de valores" usando "range", al que se le indica el valor inicial (incluido) y el valor final (no incluido):

for x in range(1,11):
  print (x) 
 

Y si queremos que no vaya de uno en uno, podemos añadir un tercer parámetro, el incremento:

for x in range(10,21,2):
  print (x)
 

Funciones

Las funciones se definen con la palabra "def". A continuación, se indica el nombre de la función, los parámetros y el símbolo de dos puntos. El contenido de la función deberá estar tabulado más a la derecha, como siempre:

def saludar(nombre):
    print ("hola")
    print (nombre)
 

Si la función devuelve valores, el único cambio será incluir la correspondiente sentencia "return":

def sumar(x,y):
    return x+y