[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.

Meta

Hola:

Ver ejercicio...

Por lo que entiendo:

- Leer 10 números enteros positivos.
-Si detecta algún número negativo lo indicamos con un mensaje print y permitir que vuelva a empezar de nuevo.
- En caso de que se hayan introducidos los 10 números positivos el programa se acaba.

Lo he intentado hacer de esta menera y como que no.

Código (python) [Seleccionar]
lista = [] # Lista vacía.
numero = int(raw_input('Dame un número: '))

while numero >= 0:
    for i in range(10):
        numero = int(raw_input('Dame un número: '))
        lista.append(numero)
        if i == 10:
            print 'Llegó a 10 números.'
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

Meta

Hola:

En C# se hace así y lo intentaré pasarlo a Python 2.7.
Código (csharp) [Seleccionar]
static void Main(string[] args)
       {
           string frase = "Una frase formada con palabras.  Otra frese con otras palabras.";

           string[] palabras = frase.Split(' ');

           Dictionary<string, int> dic = new Dictionary<string, int>();

           foreach (string item in palabras)
           {
               if (dic.ContainsKey(item))
                   dic[item]++;
               else
                   dic.Add(item, 1);
             
           }

           //muestro la lista de resultados
           Console.WriteLine("Lista palabras sin repeticion:");
           foreach (KeyValuePair<string, int> item in dic)
           {
               if(item.Value == 1)
                   Console.WriteLine(item);
           }
       }


Me imagino que en Python será el código más cortito...

Saludo.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

Meta

Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

Novlucker

Te he dicho ya que tienes problemas de lógica?
Has probado visualizar los temas en papel?
De hecho, incluso el código anterior es mejorable :-\, pero como es que puedes hacerlo en Sharp y no en python? :huh:

El ejercicio no tiene nada de difícil :-\

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

No lo hice lo de C#, lo encontré así. jejejeje.

¿Tengo problemas de lógica o algoritmo?

Citar- Leer 10 números enteros positivos.
-Si detecta algún número negativo lo indicamos con un mensaje print y permitir que vuelva a empezar de nuevo.
- En caso de que se hayan introducidos los 10 números positivos el programa se acaba.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

Novlucker

Ambos :xD

No debes de leer los 10 números de una, lees números hasta tener 10, si al ingresar alguno es negativo, lo vuelves a pedir.

Pides número
Número menor a cero? Si, pides otra vez. No, lo agregas a una lista
Cuando la lista tenga 10 números paras.

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

Casi lo logro, aún así me queda investigar.

Código (python) [Seleccionar]
lista = [] # Lista vacía.
numero = int(raw_input('Dame un número: '))
final = 0

while numero >= 0:
    for i in range(11):
        numero = int(raw_input('Dame un número: '))
        lista.append(numero)
#        print i
        if i >= 10:
            print 'Llegó a 10 números.'

if numero <0:
    print 'Haz introducido un número negativo'
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

Novlucker

Pista, lo tienes mal encarado :xD

Código (python) [Seleccionar]
lista = []
while len(lista)<10:


Saludos :D
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

#8
Ahora si. Por fin y gracias.

Código (python,13,14) [Seleccionar]
lista = [] # Lista vacía.
numero = int(raw_input('Dame un número: '))
final = 0

while numero >= 0:
   for i in range(11):
       numero = int(raw_input('Dame un número: '))
       lista.append(numero)
#        print i
       if i >= 10:
           print 'Llegó a 10 números.'

       if numero <0:
           print 'Haz introducido un número negativo'


Edito:

Viendo bien, no me salió lo que pide. El resultado me dió este:

CitarDame un número: 0
Dame un número: 1
Dame un número: 2
Dame un número: 3
Dame un número: 4
Dame un número: 5
Dame un número: 6
Dame un número: 7
Dame un número: 8
Dame un número: 9
Dame un número: 10
Dame un número: 11
Llegó a 10 números.
Dame un número: 0
Dame un número: 1
Dame un número: -2
Haz introducido un número negativo
Dame un número:

Me cuenta hasta 11 y cuando dectecta que es un número negativo, el bucle sigue.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

Shell Root

#9
Quizás sirva algo como esto,
Código (python) [Seleccionar]
# @Listas y numeros negativos
# @Shell Root
# @2010

sCount = 0
sNumber = 0
lista = []

while(sCount != 10):
sNumber = int(raw_input("Enter number: "))
if(sNumber >= 0):
lista.append(sNumber)
else:
print "Negative number"
break
sCount += 1


Resultado,
Código (PoC) [Seleccionar]
alex@shellroot:~/Escritorio$ python PoC.py
Enter number: 1
Enter number: 2
Enter number: 3
Enter number: 4
Enter number: 5
Enter number: 6
Enter number: 7
Enter number: 8
Enter number: 9
Enter number: 10
alex@shellroot:~/Escritorio$ python PoC.py
Enter number: 10
Enter number: 1
Enter number: 2
Enter number: 3
Enter number: 4
Enter number: -1
Negative number
alex@shellroot:~/Escritorio$


Note: When you complete the application, display list!
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.