Fallo con If en python -> Solucionado

Iniciado por Shrick, 30 Junio 2008, 12:54 PM

0 Miembros y 1 Visitante están viendo este tema.

Shrick

Estoy aprendiendo python, y ahora mismo tengo un nivel muy básico, por ello, quisiera saber que fallo tiene mi código, porque no me lo interpreta, es el ejemplo de como funcionaria una maquina expendedora, por favor díganme ¿donde he fallado?

print "1º Coca Cola\n\
2ºFanta\n\
3º Agua\n\
4º 7up\n\
Introduzca su elección (nº): "

num = input()

        if num == 1:
print "Has seleccionado Coca Cola"

if num == 2:
print "Has seleccionado Coca Cola"

if num == 3:
print "Has seleccionado Agua"

if num == 4:
print "Has seleccionado 7up"

if num <0 and num > 5:
       
print "¡Opción Incorrecta!, por favor vuelva a ejecutar el programa."


En Java conseguí hacerlo, porque tengo nociones básicas pero me lleva demasiado tiempo...

package maquina_expendedora;
import java.io.*;
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException {
        BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
        Integer num;
        String str;
        System.out.println("1º Coca Cola\n2º Fanta\n3º Agua\n4º 7up\nIntroduzca su elección (nº): ");
        str=in.readLine();
        num = Integer.valueOf(str).intValue();
        if (num == 1)
        System.out.println("Has seleccionado Coca Cola");
            if (num == 2)
                System.out.println("Has seleccionado Fanta");
            if (num == 3)
                System.out.println("Has seleccionado Agua");
            if (num == 4)
                System.out.println("Has seleccionado 7up");
        if ( num < 0 || num >5 )
        System.out.println("¡Opción Incorrecta, Por favor vuelva a ejecutar el programa");
    }
}
Ubuntu User
Pascal (2008/2009)
C/C++ (2009/¿?)
8080 Assembler (2009/2010)
MIPS I Assembler (2010/¿?)

Todo lo que yo haga o diga esta bajo:



No pertenece ni a mi ni a nadie :P .

Novlucker

#1
No entiendo cual es el problema, o bueno, más o menos......

Los if del 1 al 4 están bien, el único problema que veo, es en esta línea

Citarif num <0 and num > 5:

num, nunca puede ser menor a 0 y mayor a 5, no debería de ser and, sino or  ;)

También deberías de probar con else para esta última opción (si no es 1, 2, 3 o 4, entonces), ya que sería la manera más correcta

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

Shrick

print "1º Coca Cola\n\
2ºFanta\n\
3º Agua\n\
4º 7up\n\
Introduzca su elección (nº): "

num = input()

        if num == 1:
print "Has seleccionado Coca Cola"

elif num == 2:
print "Has seleccionado Coca Cola"

elif num == 3:
print "Has seleccionado Agua"

elif num == 4:
print "Has seleccionado 7up"

if num <0 or num > 5:
       
print "¡Opción Incorrecta!, por favor vuelva a ejecutar el programa."


Asi es como dices no?, pues me da esto:

Ubuntu User
Pascal (2008/2009)
C/C++ (2009/¿?)
8080 Assembler (2009/2010)
MIPS I Assembler (2010/¿?)

Todo lo que yo haga o diga esta bajo:



No pertenece ni a mi ni a nadie :P .

carlitos.dll

En java podrías hacer algo así:
creas un array de String.

String[] opciones = new String[]{"Has seleccionado Coca Cola", "Has seleccionado Coca Cola", "Has seleccionado Agua", "Has seleccionado 7up" }

evaluar el error al principio:

if (num <=o || num >=4)
{
System.out.println("¡Opción Incorrecta, Por favor vuelva a ejecutar el programa");
}
else
{
System.out.println(opciones[num]);
}



Lauta

Mirá la verdad que sé poco y nada de Python, pero tenés todo mal indentado, lo que me parece que es importante en python... Lo acomodé y funciona:

print "1º Coca Cola\n\
2ºFanta\n\
3º Agua\n\
4º 7up\n\
Introduzca su elección (nº): "

num = input()

if num == 1:
  print "Has seleccionado Coca Cola"
elif num == 2:
  print "Has seleccionado Coca Cola"
elif num == 3:
  print "Has seleccionado Agua"
elif num == 4:
  print "Has seleccionado 7up"
if num <0 or num > 5:
  print "¡Opción Incorrecta!, por favor vuelva a ejecutar el programa."
TODOS LOS MANUALES DE PROGRAMACION!!!

Quieres ganar dinero? Clickea en alguno de los enlaces y empieza ya!!!
Daddybux
Bux.to
Adverbux
Dailyclick

Shrick

Cierto Lauta tienes razón ya me funciona :D , gracias.

En cuanto a ti carlitos.dll, tambien gracias, pero como he dicho solo tengo nociones básicas de JAVA, y a largo plazo no me sale rentable porque es tedioso escribir el código y se vuelve ilegible, para el lector
Ubuntu User
Pascal (2008/2009)
C/C++ (2009/¿?)
8080 Assembler (2009/2010)
MIPS I Assembler (2010/¿?)

Todo lo que yo haga o diga esta bajo:



No pertenece ni a mi ni a nadie :P .