0

Quiero que cuando el usuario introduzca uno de esos números, le aparezca el mensaje correspondiente, pero así sale un "4" en el Run current file de sublime text 3

number = 8
guess = 4

if str(input("4")):
    print("Seleccionaste el numero menor")
elif str(input("8")):
    print("Seleccionaste el numero mayor")
Mike Aguilar
  • 168
  • 1
  • 1
  • 9
Japc
  • 13
  • 1
  • 5
  • Usé int en vez de str pero de igual manera da el mismo resultado. – Japc Jul 18 '18 at 21:44
  • No estas comparando nada, solo si no se ingresa una cadena vacía o no... ¿La idea es que el usuario ingrese un número y si es `number` imprima "Seleccionaste el numero mayor" y si es `guess` imprima "Seleccionaste el numero menor" y si no es ninguno de los dos no haga nada o es otra la idea? A todo esto, ¿Usas Python 3 o Python 2?, porque `input` difiere. – FJSevilla Jul 18 '18 at 21:55

1 Answers1

1

Asumiendo que tienes Python 3, primero te respondo ¿Por qué te imprime 4? Te imprime el 4 por el input, el input imprime en consola y recibe una variable de la misma. Si presionas enter despues de que se muestra el 4 se va imprimir el 8 también por el otro input de esta linea elif str(input("8")): y si vuelves a presionar enter se va finalizar el programa.

Para dar respuesta a tu problema, como te comentaban, no haces ninguna comparación:

number = 4
guess = 8
numeroIngresado=int(input("Ingresa un numero"))
if numeroIngresado==number:
   print("Seleccionaste el numero menor")
elif numeroIngresado==guess:
   print("Seleccionaste el numero mayor")

Otra forma de hacerlo(no recomendada):

number = '4'
guess = '8'
numeroIngresado=input("Ingresa un numero")
if numeroIngresado==number:
   print("Seleccionaste el numero menor")
elif numeroIngresado==guess:
   print("Seleccionaste el numero mayor")

El programa que parece que estas intentando hacer, un bucle puede mejorar este programa.

guess = '4'
print("Adivina el numero")
numeroIngresado=input("Ingresa un numero: ")
if numeroIngresado < guess:
    print("El numero ingresado es menor")
elif numeroIngresado > guess:
    print("El numero ingresado es mayor")
elif numeroIngresado==guess:
    print("Adivinaste el numero")
Bryan V
  • 11
  • 2
  • 1
    Hola Bryan V, bienvenido a [es.so]. Una observación con respecto a los dos primeros códigos que muestras, si usa Python 3 como mencionas `input` retorna una cadena siempre, por lo que el primer código no funciona y el segundo no necesita del casting a `str`, si usa Python 2 usar `input` es una mala práctica y muy peligroso para entradas de usuario, se debe usar `raw_input` y casting explícito a `int` . [Diferencia entre input() y raw_input()](https://es.stackoverflow.com/q/38288/15089) – FJSevilla Jul 19 '18 at 07:44
  • 1
    Además, en los dos primeros ejemplos, los mensajes están intercambiados, puesto que `8` es el número mayor, no el menor. – abulafia Jul 19 '18 at 07:50
  • @FJSevilla y abulafia, gracias por la información y sus comentarios, ya modifique el post de forma correcta – Bryan V Aug 02 '18 at 21:26