Documentos de Académico
Documentos de Profesional
Documentos de Cultura
8 5python Ciclos
8 5python Ciclos
COMPARACIÓN DE SECUENCIAS
Los operadores de comparación están
sobrecargados para aceptar secuencias (string,
listas, tuplas)
>>> 'a' < 'b'
True
>>> 'ab' < 'aa'
False
>>> 'a' < 'b' < 'c'
True
>>> (1, 2, 3) < (1, 2, 4)
True
>>> [1, 2, 3] <= [1, 2, 3]
True
FORMA CORTA DE if else
Sintaxis:
expr-1 if test else expr-2
# Evalua expr-1 si test es True; sino, evalua expr-2
>>> n = 1
>>> print(‘uno' if n == 1 else 'no es uno')
uno
>>> x = -5
>>> abs_x = x if x > 0 else -x
>>> abs_x
5
CICLO WHILE
Sintaxis:
while condición:
sentencias
def fac(n):
# calcula factorial de N = 1*2*3*…*n
f=1
c=1
while (c <= n):
f=f*c
c=c+1
return f
CICLO for
# secuencia: string, list, tuple, dictionary, set
for v in secuencia:
sentencias
# for-in con la opcion else
for v in secuencia:
sentencias
else:
sentenciasF
Se interpreta como “para cada ítem en la secuencia...”.
El bloque else se ejecuta si el ciclo termina
normalmente sin encontrar la instrucción break.
6
CICLO for
# String: itera en cada caracter
>>> for ch in 'hello':
print(ch, end=‘ ‘)
hello
# List: itera en cada elemento de la lista
>>> for v in [123, 4.5, 'hello']:
print(v)
123
4.5
hello
# Tuple: itera en cada elemento de la tupla
>>> for v in (123, 4.5, 'hello'):
print(v) 7
CICLO for
# Dict: itera en cada clave del diccionario
>>> dc = {'a': 1, 2: 'b', 'c': 'cc'}
>> for key in dct:
print(key, ':', dc[key])
a:1
2: b
c : cc
# Set: itera en cada elemento del conjunto
>>> for v in {'a', 2, 'apple'}:
print(v)
a
2
apple 8
CICLO for
10
FUNCIÓN range
# llamado: fac2(5)
FUNCIÓN range
def ejemplo():
x = [3, 6, 1]
y = [5, 1, 4]
su = 0.0
for i in range(len(x)):
su += x[i]*y[i]
return su
>> ejemplo()
25
13
FUNCIÓN enumerate
La función enumerate() da los índices posicionales cuando
se recorre por una secuencia.
>>> for e in enumerate(['a', 'b']):
print(e)
(0, ‘a’)
(1, ‘b’)
>>> for i, v in enumerate(['a', 'b']):
print(i, v) # posición y elemento de una lista
0 a
1 b
>>> enumerate(['a', 'b', 'c'])
<enumerate object at 0x7ff0c6b75a50>
>>> for i, v in enumerate(('d', 'e')):
print(i, v) # Tupla
0 d
1 e 14
FUNCIÓN reversed
Se usa para iterar una secuencia en orden inverso.
>>> li = [10, 20, 30]
>>> for item in reversed(li):
print(item, end=' ')
30 20 10
>>> reversed(li)
<list_reverseiterator object at 0x7fc4707f3828>
>>> s = "hola"
>>> for c in reversed(s):
print(c, end='')
aloh
15
FUNCIÓN zip Y SECUENCIAS MÚLTIPLES
16
GENERAR SECUENCIAS
lr = [expresion_con_item for item in lista]
>>> sq = [v * v for v in range(1,11)]
>>> sq # lista de cuadrados
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
# con un test opcional
lr = [expresion_con_item for item in lista if test]
>>> w = [3, 4, 1, 5]
>>> sq_odd = [v * v for v in w if v % 2 != 0]
>>> sq_odd # lista de cuadrados impares
[9, 1, 25]
# Con dos for
>>> [(x, y) for x in range(1,3) for y in range(1,4) if x != y]
# [(x, y) for x in [1,2] for y in [1,2,3] if x != y]
[(1, 2), (1, 3), (2, 1), (2, 3)]
17
GENERAR SECUENCIAS
PARA DICCIONARIOS:
>>> d = {x:x**2 for x in range(1, 5)} # se usa llaves
>>> d # la clave es x, el valor es x**2
{1: 1, 2: 4, 3: 9, 4: 16}
PARA CONJUNTOS
>>> s = {e for e in 'hola' if e not in 'aeiou'} # con llaves
>>> s
{'h', 'l'}
18
GRACIAS