Sei sulla pagina 1di 13

Primeros pasos hacia la

programacin
hola = r"Esta es una larga cadena que contiene\n \
varias lneas de texto, tal y como se hace en C.\n\
Notar que los espacios en blanco al principio de la lnea\
son significantes. "
print (hola)
Por supuesto, podemos usar Python para tareas ms complicadas que sumar dos y
dos. Por ejemplo, podemos escribir una subsecuencia inicial de la serie de
Fibonacci as:

# Series de Fibonacci:
# la suma de dos elementos define el siguiente
a, b = 0, 1
while b < 10:
print(b)
a, b = b, a+b

1
1
2
3
5
8
El parmetro nombrado end puede usarse para evitar el
salto de linea al final de la salida, o terminar la salida con
una cadena diferente:
a, b = 0, 1
while b < 1000:
print(b, end=',')
a, b = b, a+b

1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987
La sentencia

La sentencia Tal vez el tipo ms conocido de sentencia sea el if.


Por ejemplo:

x = int(input("Ingresa un entero, por favor: "))


if x < 0:
x=0
print('Negativo cambiado a cero')
elif x == 0:
print('Cero')
elif x == 1:
print('Simple')
else:
print('Ms') ... 'Mas
sentencia for

La sentencia for en Python difiere un poco de lo que uno puede estar


acostumbrado en lenguajes como C o Pascal. En lugar de siempre iterar sobre una
progresin aritmtica de nmeros (como en Pascal) o darle al usuario la
posibilidad de definir tanto el paso de la iteracin como la condicin de fin (como
en C), la sentencia for de Python itera sobre los tems de cualquier secuencia (una
lista o una cadena de texto), en el orden que aparecen en la secuencia. Por
ejemplo:

# Midiendo cadenas de texto


palabras = ['gato', 'ventana', 'defenestrado']
for p in palabras:
print(p, len(p))
palabras = ['gato', 'ventana', 'defenestrado']

for p in palabras[:]: # hace una copia por rebanada de toda la lista


if len(p) > 6:
palabras.insert(0, p)

print(palabras)

Otro Ejemplo

for i in range(5):
print(i)
El valor final dado nunca es parte de la secuencia; range(10) genera 10
valores, los ndices correspondientes para los tems de una secuencia de
longitud 10. Es posible hacer que el rango empiece con otro nmero, o
especificar un incremento diferente (incluso negativo; algunas veces se lo
llama 'paso'):

Ejemplos

range(5, 10)
5 hasta 9

range(0, 10, 3)
0, 3, 6, 9

range(-10, -100, -30)


-10, -40, -70
Para iterar sobre los ndices de una secuencia, puedes combinar range() y
len() as:

Ejemplo

a = ['Mary', 'tenia', 'un', 'corderito']


for i in range(len(a)):
print(i, a[i])
Ejemplo

a = ['Mary', 'tenia', 'un', 'corderito']


for i in range(len(a)):
print(i, a[0:i])

Ejemplo

a = ['Mary', 'tenia', 'un', 'corderito']


for i in range(len(a)+1):
print(i, a[0:i])
Algo extrao sucede si muestras un range:

>>> print(range(10))

range(0, 10)

>>> list(range(5))

[0, 1, 2, 3, 4]
Las sentencias , , y en lazos

La sentencia break, como en C, termina el lazo for o while ms anidado. Las sentencias
de lazo pueden tener una clusula else que es ejecutada cuando el lazo termina, luego
de agotar la lista (con for) o cuando la condicin se hace falsa (con while), pero no
cuando el lazo es terminado con la sentencia break. Se ejemplifica en el siguiente lazo,
que busca nmeros primos:

for n in range(2, 10):


for x in range(2, n):
if n % x == 0:
print(n, 'es igual a', x, '*', n/x)
break
else:
# sigue el bucle sin encontrar un factor
print(n, 'es un numero primo')
(S, este es el cdigo correcto. Fijate bien: el else pertenece al ciclo for, no
al if.)
Cuando se usa con un ciclo, el else tiene ms en comn con el else de una declaracin try
que con el de un if: el else de un try se ejecuta cuando no se genera ninguna excepcin, y el
else de un ciclo se ejecuta cuando no hay ningn break. Para ms sobre la declaracin try y
excepciones. La declaracin continue, tambin tomada de C, continua con la siguiente
iteracin del ciclo:

for num in range(2, 10):


if num % 2 == 0:
print("Encontr un nmero par", num)
continue
print("Encontr un nmero", num)
Definiendo funciones

Podemos crear una funcin que escriba la serie de Fibonacci hasta un lmite
determinado:

def fib(n): # escribe la serie de Fibonacci hasta n


"""Escribe la serie de Fibonacci hasta n.""
a, b = 0, 1
while a < n:
print(a, end=' ')
a, b = b, a+b
print()
# Ahora llamamos a la funcin que acabamos de definir:
fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597