Python - no puedo imprimir el -50

 
Vista:
sin imagen de perfil

no puedo imprimir el -50

Publicado por Eder (5 intervenciones) el 30/09/2018 08:54:37
Hola saludos

Agradezco tu colaboración:
Tengo un problema con este algoritmo
no puedo imprimir el -50
solo desde -45,-23,-21,-14,-9,-2,0,1,3,5,16,17,24,29,30,40,52,53,92
Existe alguna respuesta a esto y como puedo solucionarlo gracias

Algoritmo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
L=[-50,-45,-23,-21,-14,-9,-2,0,1,3,5,16,17,24,29,30,40,52,53,92]
 
print("Lista",L)
print("Numeros exigidos en el laboratorio | -45 | -21 | 0 | 92 | 100 |")
 
n=int(input("Ingrese uno de los valores exigidos en el laboratorio: "))
 
ban=False
contador=0
posicion=0
 
 
while ban==False:           #Ciclo while - Centinela o bandera - Mientras la condicion sea falsa realiza una y otra vez el ciclo
 
 
    while contador<=len(L):  #Mientras contador es menor al numero de elecmentos de la lista se ejecuta el ciclo
 
        print(contador)
 
        #problema solo toma desde -45,-23,-21,-14,-9,-2,0,1,3,5,16,17,24,29,30,40,52,53,92] dejando por fuera al -50 
        if L[contador]==n:      #Condicional permite mediante comparacion saber si el numero se encuentra en la lista
            break               #Rompe el ciclo
 
        else:
            ban=True        #Rompe swich
 
        contador=contador+1 #Actualiza el contador en cada ciclo
        posicion=contador+1 #Nos da la posicion del numero de la lista
 
 
if n not in L:
    print("El numero",n,"no se encuentra en la lista L")
    print("# Iteracion",contador)
 
else:
    print("El numero",n,"se encuentra en la lista L")
    print("# Posicion:",posicion)
    print("# Iteracion:",contador+1)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 2.239
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

no puedo imprimir el -50

Publicado por xve (1646 intervenciones) el 30/09/2018 13:47:05
Hola Eder, tu problema es que el numero -50 se encuentra en la posicion 0, es decir la primera, y por esta razon, la variable ban nunca vale true!!
Yo quitaría el primer bucle y dejaría de utilizar la variable "ban"... algo así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
L=[-50,-45,-23,-21,-14,-9,-2,0,1,3,5,16,17,24,29,30,40,52,53,92]
 
print("Lista",L)
print("Numeros exigidos en el laboratorio | -45 | -21 | 0 | 92 | 100 |")
 
n=int(input("Ingrese uno de los valores exigidos en el laboratorio: "))
 
for i in range(len(L)):
    if L[i]==n:
        break
 
if L[i]==n:
    print("El numero",n,"se encuentra en la lista L")
    print("# Posicion:",i)
    print("# Iteracion:",i+1)
else:
    print("El numero",n,"no se encuentra en la lista L")
    print("# Iteracion",i+1)

Espero que te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

no puedo imprimir el -50

Publicado por eder.ariza (5 intervenciones) el 30/09/2018 18:11:27
de antemano gracias por tu ayuda

Lo que sucede es que este es el enunciado del taller
Y me piden una variable

# Busqueda lineal

# Variables a emplear
L = [2, 10, 20, 23, 41, 45, 57, 90] # Lista (cambiar por la de la guía)

'''
Variable que indica si se encontró la clave en la lista tal que:
- Ban = False, la clave no esta en la lista
- Ban = True, la clave esta en la lista
'''
ban = False

num = 57 # Valor de prueba para buscar en la lista

# Imprima un mensaje donde se muestre el valor a buscar

# Ciclo que recorre la lista para buscar

# Imprima el mensaje en el cual se muestre cada elemendo de la iteración

# Verifique si la clave se encontró

''' Imprima el mensaje en el cual se informe la posición
en la que se encontró el número, o un mensaje indicando que no se encontró'''

# Imprima la cantidad de iteraciones que hizo el ciclo


#****************************** Salida esperada ***********************************#
#
#Número: 57
#
#Iteración: 0, L[0] = 2
#Iteración: 1, L[1] = 10
#Iteración: 2, L[2] = 20
#Iteración: 3, L[3] = 23
#Iteración: 4, L[4] = 41
#Iteración: 5, L[5] = 45
#Iteración: 6, L[6] = 57
#
#Numero encontrado en la posición 6
#
#Cantidad de iteraciones 7
#**********************************************************************************#
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

no puedo imprimir el -50

Publicado por tincopasan (1082 intervenciones) el 30/09/2018 16:21:59
si te fijas con:
1
while contador<=len(L):

ya inicias un bucle que solo se cumplirá si...
por lo tanto:
1
while ban==False:
y
1
2
else:
    ban=True
están de más haciendo fallar la lógica del script(en realidad tu lógica de programación)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar