que le hace falta este codigo en python

Iniciado por YunTech, 5 Diciembre 2015, 15:52 PM

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

YunTech

Que hace falta aqui:
nota1 = (input("Digite la primera nota:"))
while type(nota1) != int:
       print("error")
       nota1 = (input("Digite la primera nota:"))
while type(nota1) == int:
       int(nota1)
       while nota1 > 0 and nota1 < 100:
               print ("la nota es", nota1)
       while nota1 <= 0 or nota1 > 100:
               print("error")
               nota1 = (input("Digite la primera nota:"))


para que cuando ingrese una letra me imprima error, y si ingreso un numero menor o igual a cero o mayor que 100 me imprima error???? :huh:

Darioxhcx

#1
no diferencia variables int de las string? pregunto, no recuerdo mucho xD

quizas esto te pueda ayudar
http://www.ehowenespanol.com/revisar-tipos-variables-python-como_219393/

Once

Bueno, depende un poco de si estás trabajando en Python3 o 2. (Si no estoy mal raw_input no está en python3). Si estás trabajando en Python2 input() solo acepta números, si estás en Python3 no hay ese problema. Ahora, lo que debes tener en cuenta es que ya sea que uses raw_input en Python2 o input en Python3 siempre te va a devolver una variable de tipo string, así que no puedes hacer lo que te dice Darioxhcx.

Teniendo esto en cuenta, lo que tienes que hacer es verificar si lo que está dentro del string es un número o no y tienes varias formas de hacerlo. Puedes intentar convertir la cadena a int y capturar los errores en caso de que lo que hay en el string no sea un número, puedes usar listas blancas. Hay muchas opciones, usa la que más se acomode a lo que necesitas.

Saludos!

YunTech

Uso python 3 asi que no hay problema con int.
Pero si cambio la cadena a int, no podre agregar el error en las condiciones.
Y si intento capturar los errores con try, seria algo asi??

nota1 = int(input("Digite la primera nota:"))
try:
           type(nota1) == str
except ValueError:
           print ("Error")

Once

Hola, creo que estás algo confundido, type solo te dice el tipo de una variable. Ahora, el problema que tienes con el código que acabas de subir es que estás intentando convertir a int lo que te devuelve la función input() así que si el usuario ingresa algo que no sea un número te va a arrojar un error (este es el error que debes capturar). La otra opción es como te digo una lista blanca, algo así:

Código (python) [Seleccionar]
analizar = raw_input("Ingrese la cadena: ")

print all(map(lambda x: x in map(str, range(10)), analizar))


Te devuelve True si todas los caracteres son números y False si no lo son.

Saludos!

tincopasan

fijate si esto te sirve más o menos:
Código (python) [Seleccionar]

#-*- coding: utf -8 -*-
while True:
    try:
        nota=int(input("Ingrese la primera nota: "))
        if nota  >= 0 and nota <= 100 :
            print("la nota es: ",nota)
            break
        else:
            print("Error, la nota no puede ser menor a 0 ó mayor que 100")
               
    except ValueError:
        print ("Error! ingrese un número")


YunTech