Last active
January 17, 2017 09:14
-
-
Save OscardR/c18006993695d8e5458b to your computer and use it in GitHub Desktop.
Python Request
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# coding: utf8 | |
######################### | |
# 1. Inicio del programa | |
######################### | |
print "\nINICIO" | |
''' | |
Problema 1 | |
========== | |
''' | |
##################### | |
# Definir la función | |
##################### | |
def problema_1( lista ): | |
# Recorrer la lista en los elementos pares [0, 2, 4, ...] | |
for indice_par in range(0, len( lista ), 2): | |
# Guardar número de la lista en índice actual en variable auxiliar | |
aux = lista[ indice_par ] | |
# Sustituir por número siguiente en la lista | |
lista[ indice_par ] = lista[ indice_par + 1 ] | |
# Sustituir número siguiente por número guardado en variable auxiliar | |
lista[ indice_par + 1 ] = aux | |
################# | |
# 1. Crear lista | |
################# | |
lista_1 = [ 1, 4, 5, 6, 2, 7, 9, 3 ] | |
################ | |
# 2. Imprimirla | |
################ | |
print "\nEjercicio 1" | |
print "Entrada:", lista_1 | |
################################## | |
# 3. Procesar mediante la función | |
################################## | |
problema_1( lista_1 ) | |
############################################ | |
# 4. Imprimir de nuevo, esta vez modificada | |
############################################ | |
print "Salida:", lista_1 | |
''' | |
Problema 2 | |
========== | |
''' | |
##################### | |
# Definir la función | |
##################### | |
def problema_2( lista ): | |
# Copiaremos la lista original elemento a elemento (para no acarrear las modificaciones) | |
lista_original_copia = [ numero for numero in lista ] | |
# Recorrer la lista desde el segundo elemento (índice 1) hasta el final | |
for indice in range(1, len( lista )): | |
# Si es múltiplo de 5... | |
if lista[ indice ] % 5 == 0: | |
# ...sustituir por número anterior en la lista | |
lista[ indice ] = lista_original_copia[ indice - 1 ] | |
################# | |
# 1. Crear lista | |
################# | |
lista_2 = [ 25, 4, 8, 5, 10, 7, 9, 3 ] | |
################ | |
# 2. Imprimirla | |
################ | |
print "\nEjercicio 2" | |
print "Entrada:", lista_2 | |
################################## | |
# 3. Procesar mediante la función | |
################################## | |
problema_2( lista_2 ) | |
############################################ | |
# 4. Imprimir de nuevo, esta vez modificada | |
############################################ | |
print "Salida:", lista_2 | |
''' | |
Problema 3 | |
========== | |
''' | |
######################################################### | |
# 1. Pedir el número de elementos que se van a introducir | |
######################################################### | |
print "\nEjercicio 3" | |
num_elementos = int( raw_input( "¿Cuantos elementos vas a introducir?: " ) ) | |
################################################ | |
# 2. Construir una lista del tamaño especificado | |
################################################ | |
lista_3 = [0] * num_elementos | |
## (o construirla vacía:) | |
## lista_3 = [] | |
################################ | |
# 3. Pedir los números uno a uno | |
################################ | |
for indice in range( num_elementos ): | |
nuevo_numero = int( raw_input( "Introduce el número en la posición {}: ".format( indice ) ) ) | |
# Añadir nuevo número a la lista en la posición actual del bucle | |
lista_3[ indice ] = nuevo_numero | |
## (si la lista era vacía, hay que añadir el número al final de la lista) | |
## lista_3.append( nuevo_numero ) | |
############################################################### | |
# 4. Comprobar si hay un múltiplo del último número en la lista | |
############################################################### | |
# 4.1. Obtener el último número | |
# ----------------------------- | |
ultimo_numero = lista_3[ num_elementos - 1 ] | |
## (También se puede usar un índice negativo, si no conocemos el tamaño de la lista:) | |
## ultimo_numero = lista_3[ -1 ] | |
# 4.2. Comparar uno a uno los elementos de la lista | |
# ------------------------------------------------- | |
# Inicializar variable de control | |
hay_multiplos = False | |
# Recorrer lista hasta el penúltimo elemento (no queremos compararlo con él mismo) | |
for indice in range( len( lista_3 ) - 1 ): | |
# Si el numero actual es divisible por el número del final de la lista... | |
if lista_3[ indice ] % ultimo_numero == 0: | |
# ...cambiamos el valor de la variable de control | |
hay_multiplos = True | |
# y salimos del bucle (no hace falta seguir mirando) | |
break | |
################################################################ | |
# 5. Procesar la lista mediante el primer ejercicio o el segundo | |
# en función de si hemos encontrado múltiplos | |
################################################################ | |
# 5.1. Imprimir lista original | |
# ---------------------------- | |
print "Entrada:", lista_3 | |
# 5.2. Decidir qué hacer | |
# ---------------------- | |
# Si hay múltiplos... | |
if hay_multiplos: | |
# ...procesar mediante función del problema 1 | |
print "\nHay múltiplos. Se procesará mediante función 1" | |
problema_1( lista_3 ) | |
# De lo contrario... | |
else: | |
# ...procesar mediante función del problema 2 | |
print "\nNo hay múltiplos. Se procesará mediante función 2" | |
problema_2( lista_3 ) | |
# 5.3. Imprimir la lista procesada | |
# -------------------------------- | |
print "Salida:", lista_3 | |
##################### | |
# 6. Fin del programa | |
##################### | |
print "\nFIN" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment