tienes unos pequeños errores en el código:
Cita:
Iniciado por mralex24 hola gracias por su ayuda
yotengo algo así
pero ala hora de correrlo me marca error de index
y todavia me falta ordenarlo y sacar la mayor diferencia
no se si mepuedan ayudar
vec=[]
n=int(input("dame un numero: "))
for i in range(n):
elemento=int(input("dame una serie de numeros: "))
vec.append(elemento)
dif=[]
i=0
j=1
a=vec[j]
for i in vec:
a=vec[j]
l=abs(i-a)
j=j+1
dif.append(l)
print(l)
dif.sort()
print(dif)
el primero que veo es que creas la variable i=0 la cual es innecesaria porque no la usas en ninguna otra parte del codigo (la variable
i dentro del
for python no la relaciona con la variable global
i=0)
la parte donde te arroja error es porque estas "
indexando fuera de rango". el codigo corre bien hasta que el
for llega hasta el ultimo indice dentro de la lista
vec ya que al tratar de restar
i - a la variable
a no existe (cuando
i es el ultimo indice de la lista, entonces
a (que en esencia es igual a i +1) no existe)
tomando al pie de la letra lo que indicas aquí:
Cita: estoy intentando hacer un programa donde me diga cual es la diferencia mas grande de una lista dada de una serie de numeros contiguos
la manera en que yo lo realizaría seria la siguiente:
Código Python:
Ver originala=[8,9,19,15,14]
def restar_valores(lista):
""" resta los valores de la lista"""
temp = 0
for x in range(len(lista)-1):
resta = lista[x] - lista[x+1]
print "la resta de %s y %s es igual a %s " % (lista[x],
lista[x+1],
resta)
if abs(resta) > temp:
temp = abs(resta)
index = x
print "la mayor resta fue entre %s y %s" %(lista[index], lista[index +1])
restar_valores(a)
de todas maneras lo importante es que entiendas lo que el código esta realizando para que puedas interpretarlo cualquier duda solo pregunta..