Skip to content

Instantly share code, notes, and snippets.

@OscardR
Last active January 17, 2017 09:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save OscardR/c18006993695d8e5458b to your computer and use it in GitHub Desktop.
Save OscardR/c18006993695d8e5458b to your computer and use it in GitHub Desktop.
Python Request
# 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