Python - Python isdigit

 
Vista:
sin imagen de perfil

Python isdigit

Publicado por Juan (27 intervenciones) el 16/12/2023 20:05:26
Mis respetos a todos cometido un error en otro post sobre este mismo código. No explique mi necesidad. Me proporcionaron el enunciado en el trabajo e intento resolverlo. Me genera dudas si es correcta la forma en la que utilizo isdigit. Por favor necesito su ayuda,. Saludos.

"""
Proceso que permita ingresar una serie de números y asigne un valor a una variable de acuerdo a lo sgte:
-Si se ingresa 5, asignar el valor 10
-Si se ingresa 10, asignar el valor 20,
-Si se ingresa 15, asignar el valor 40
-Si se ingresa cualquier numero, asignar el valor 80
Condición de fin: cuando se pulse Enter en el numero
"""


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
num =  input('Ingrese una serie de números')
 
 
 
while num.isdigit () != True:
 
 
 
    raise TypeError('El digito introducido no es un número')
 
 
 
num= input('Introduzca el numero, por favor:')
 
 
 
 
 
if  num==5:
 
		x=10
 
 
 
elif num==10:
 
		x=20
 
 
 
elif num==15:
 
	    x=40
 
 
 
else:
 
	    x=80
 
 
 
	    print("")
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Python isdigit

Publicado por Costero (92 intervenciones) el 17/12/2023 20:11:03
Por lo que yo veo si lo estas uzando correctamente.

Unas cosas:

Esto no es necesario si el cliente entra un numero, entonces el codigo de abajo vuelve a preguntar por el numero.
1
num= input('Introduzca el numero, por favor:')

Los codicionales siempre van a dar 80, porque estas comparando str con int. Debes de convertir el str a int despues que determinas que es un digito.
1
num = int(num)

Por que not print el valor de x?

Por que utilizas "while" en vez de "if"?. Usualmente cuando utilizamos "while" queremos decir que algo se va a repetir, que no es caso aqui. Cuando programamos debemos de ser lo posible de que el codigo nos diga intencion verdadera y no nos confunda.

Abajo varias versiones del codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
num =  input('Ingrese una serie de números: ')
 
if not num.isdigit():
    raise TypeError('El digito introducido no es un número')
 
# tienes que convertir str a int
num = int(num)
 
 
if  num==5:
	x=10
elif num==10:
	x=20
elif num==15:
	x=40
else:
	x=80
 
print(f"Valor x: {x}")


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
num =  input('Ingrese una serie de números: ')
 
# ejemplo de utilization de "while", mientras entre letras, Enter, etc. Seguira preguntando que ponga numeros ...
while not num.isdigit():
    print("Por favor ingrese solo numero: ")
    num =  input('Ingrese una serie de números: ')
 
num = int(num)
 
 
if  num==5:
	x=10
elif num==10:
	x=20
elif num==15:
	x=40
else:
	x=80
 
print(f"Valor x: {x}")


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
num =  input('Ingrese una serie de números: ')
 
if not num.isdigit():
    raise TypeError('El digito introducido no es un número')
 
dict_num = {
	5:10,
	10:20,
	15:40,
}
 
 
x = dict_num.get(int(num), 80)
 
print(f"Valor x: {x}")

Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Python isdigit

Publicado por Juan (27 intervenciones) el 18/12/2023 02:13:27
Muchas gracias por su ayuda. Que todo le vaya bien siempre. Gracias en verdad.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar