[Python] Listas y números negativos.

Iniciado por Meta, 14 Noviembre 2010, 00:40 AM

0 Miembros y 2 Visitantes están viendo este tema.

Novlucker

#10
Código (python) [Seleccionar]
lista = []
for i in range(10):
while True:
n = input('Ingresa valor: ')
if n < 0:
print('El valor no puede ser negativo')
else:
lista.append(n)
break
print lista


Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Shell Root

@Novlucker,
Sólo por curiosidad, por qué empieza en -1. Aquí,
Código (python,3) [Seleccionar]
lista = []
for i in range(10):
n = -1
while True:
n = input('Ingresa valor: ')
if n < 0:
print('El valor no puede ser negativo')
else:
break
lista.append(n)
print lista
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Novlucker

#12
Por una pifia de mi parte, es que antes había puesto otra cosa, no se por que no había puesto el append dentro del if, así que para que la variable n estuviese alcanzable donde lo hacía, necesitaba tenerla inicializda :xD

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Meta

¿Estás seguro que es lo que pide el ejercicio?

Fíjate el resultado.

Código (python) [Seleccionar]
Ingresa valor: 0
Ingresa valor: 1
Ingresa valor: 2
Ingresa valor: -3
El valor no puede ser negativo
Ingresa valor: 0
Ingresa valor: 1
Ingresa valor: 2
Ingresa valor: 3
Ingresa valor: 4
Ingresa valor: 5
Ingresa valor: 6
[0, 1, 2, 0, 1, 2, 3, 4, 5, 6]
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

Shell Root

Es qué es tú ejercicio, no de nosotros, así que ahora te toca acomodarlo a tus necesidades.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Meta

Lo estoy haciendo honorable Shell Root.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

Shell Root

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Meta

#17
Investigando el borrado completo de la lista para que empiece desde cero. Por ahora estoy usando uno a uno el
Código (python) [Seleccionar]
del lista [1]

Lo puedo hacer uno a uno. Deja ver como lo hago a la vez.
Código (python) [Seleccionar]

  for j in lista:
         if j < 0:
             del i





Edito:

Código (python) [Seleccionar]
lista = [] # Lista vacía.
for i in range(10):
while True:
n = input('Ingresa valor: ') # Pide un valor entero en n.
if n < 0: # ¿El valor n en menor que ?
                   del lista[0]
                   del lista[1]
                   del lista[2]
                   del lista[3]
                   del lista[4]
                   del lista[5]
                   del lista[6]
                   del lista[7]
                   del lista[8]
                   del lista[9]
                   print('El valor no puede ser negativo')
else: #Entonces.
                   lista.append(n) # Añade en la lista el valor n actual.
                   break # Rompe el bucle.
print lista # Muestra en pantalla los valores de la lista introducido.


Me da este resultado. Parece que no le va los negativos.
Citar
Ingresa valor: 1
Ingresa valor: 2
Ingresa valor: 3
Ingresa valor: -4
Traceback (most recent call last):
 del lista[2]
IndexError: list assignment index out of range

Se que es una forma chapuza de borrar la lista completa para empezar desde cero. Ya lo haré con for in, antes, debo entender como se hace el borrado.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

Novlucker

#18
Si, estoy seguro de que es lo que pide
Cuál es el error que ves tu en la solución que has puesto antes?

Código (dos) [Seleccionar]
Ingresa valor: 0
Ingresa valor: 1
Ingresa valor: 2
Ingresa valor: -3
El valor no puede ser negativo
Ingresa valor: 0
Ingresa valor: 1
Ingresa valor: 2
Ingresa valor: 3
Ingresa valor: 4
Ingresa valor: 5
Ingresa valor: 6
[0, 1, 2, 0, 1, 2, 3, 4, 5, 6]


Que tiene de malo?

Yo ahí veo que pide 10 valores, y al final tienes 10 valores, y si uno de los que ingresas es negativo, te lo vuelve a pedir :rolleyes:
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Shell Root

Quizás se entiende de 2 formas, por lo menos yo la entiendo así.

Pedir números, al completar 10 números POSITIVOS imprimirlos, si se ingresa uno negativo, vuelve a pedir los números. Yo diría que se empezará otra vez desde 0, y por cierto, así fue que lo hice. XD
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.