Uno de los ejercicios que hemos hecho en el curso, es para el control de errores:
En Python existe Try al igual que gambas y Except. Parece Catch.
Fijaros en el código en Python y luego os muestro el que hice en Gambas.
Pueden venir cosas en inglés.
# Escribe un programa que pregunte al usuario una puntuacion
# entre 0.0 y 1.0. Si la puntuacion esta fuera de rango que imprima
# un error. Si la puntuación esta entre 0.0 y 1.0, muestra la
# nota usando la siguiente tabla:
# Punto Grado
# >= 0.9 A
# >= 0.8 B
# >= 0.7 C
# >= 0.6 D
# < 0.6 F
# Enter score: 0.95
# A
# Enter score: perfect
# Bad score
# Enter score: 10.0
# Bad score
# Enter score: 0.75
# Bad score
sscore = input ('Entra una puntuacion entre 0.0 y 1.0: ')
try:
fscore = float(sscore)
grade = ''
if 0.0 < fscore <= 1.0:
if fscore >= 0.9:
grade = "A"
elif fscore >= 0.8:
grade = "B"
elif fscore >= 0.7:
grade = "C"
elif fscore >= 0.6:
grade = "D"
elif fscore < 0.6:
grade = "F"
print (grade)
else:
print ('Error en la puntuacion')
except:
print ('Error en la puntuación')
# entre 0.0 y 1.0. Si la puntuacion esta fuera de rango que imprima
# un error. Si la puntuación esta entre 0.0 y 1.0, muestra la
# nota usando la siguiente tabla:
# Punto Grado
# >= 0.9 A
# >= 0.8 B
# >= 0.7 C
# >= 0.6 D
# < 0.6 F
# Enter score: 0.95
# A
# Enter score: perfect
# Bad score
# Enter score: 10.0
# Bad score
# Enter score: 0.75
# Bad score
sscore = input ('Entra una puntuacion entre 0.0 y 1.0: ')
try:
fscore = float(sscore)
grade = ''
if 0.0 < fscore <= 1.0:
if fscore >= 0.9:
grade = "A"
elif fscore >= 0.8:
grade = "B"
elif fscore >= 0.7:
grade = "C"
elif fscore >= 0.6:
grade = "D"
elif fscore < 0.6:
grade = "F"
print (grade)
else:
print ('Error en la puntuacion')
except:
print ('Error en la puntuación')
Recordemos que cuando trabajamos con condicionales vamos comparando de mayor a menor. Para no liarnos.
Lo curioso del tema es que con Try se puede usar un bloque de instrucciones. gambas solo admite una instrucción.
Y sobra. Os comento lo que hice al convertir la cadena a Float.
' gambas module file
'Escribe un programa que pregunte al usuario una puntuación
'entre 0.0 y 1.0.Si la puntuacion esta fuera de rango que imprima
'un error.Si la puntuación esta entre 0.0 y 1.0, muestra la
'nota usando la siguiente tabla:
'Punto Grado
' >= 0.9 A
' >= 0.8 B
' >= 0.7 C
' >= 0.6 D
' < 0.6 F
'Enter score: 0.95
'A
'Enter score: perfect
'Bad score
'Enter score: 10.0
'Bad score
'Enter score: 0.75
'Bad score
Public Sub Main()
Dim sscore As String
Dim fscore As Float
Dim grade As String
Print "Entra una puntuacion entre 0.0 y 1.0: "
Input sscore
Try CFloat(sscore)
fscore = CFloat(sscore)
If fscore >= 0.0 And fscore <= 1.0 Then
If fscore >= 0.9 Then
grade = "A"
Else If fscore >= 0.8 Then
grade = "B"
Else If fscore >= 0.7 Then
grade = "C"
Else If fscore >= 0.6 Then
grade = "D"
Else If fscore < 0.6 Then
grade = "F"
Endif
Print grade
Else
Print "Error en la puntuación"
Endif
Catch
Print "Error en la puntuación"
End
'Escribe un programa que pregunte al usuario una puntuación
'entre 0.0 y 1.0.Si la puntuacion esta fuera de rango que imprima
'un error.Si la puntuación esta entre 0.0 y 1.0, muestra la
'nota usando la siguiente tabla:
'Punto Grado
' >= 0.9 A
' >= 0.8 B
' >= 0.7 C
' >= 0.6 D
' < 0.6 F
'Enter score: 0.95
'A
'Enter score: perfect
'Bad score
'Enter score: 10.0
'Bad score
'Enter score: 0.75
'Bad score
Public Sub Main()
Dim sscore As String
Dim fscore As Float
Dim grade As String
Print "Entra una puntuacion entre 0.0 y 1.0: "
Input sscore
Try CFloat(sscore)
fscore = CFloat(sscore)
If fscore >= 0.0 And fscore <= 1.0 Then
If fscore >= 0.9 Then
grade = "A"
Else If fscore >= 0.8 Then
grade = "B"
Else If fscore >= 0.7 Then
grade = "C"
Else If fscore >= 0.6 Then
grade = "D"
Else If fscore < 0.6 Then
grade = "F"
Endif
Print grade
Else
Print "Error en la puntuación"
Endif
Catch
Print "Error en la puntuación"
End
Cuando convierto de cadena a Float, no puedo hacer esto:
Primero tengo que ver si se puede convertir y luego asignarlo abajo.
Creo que Except se parece mucho al Catch de gambas. Si usásemos Error la información seria mas completa del tipo de error.
Os dejo el ejemplo en Gambas.
Saludos
PuntosYNotas.tar.gz | ||
Descripción: | Descargar |
|
Nombre del archivo: | PuntosYNotas.tar.gz | |
Tamaño: | 4.58 KB | |
Descargado: | 19 veces |
PuntosYNotas.tar.gz | ||
Descripción: | Descargar |
|
Nombre del archivo: | PuntosYNotas.tar.gz | |
Tamaño: | 4.58 KB | |
Descargado: | 19 veces |
PuntosYNotas.tar.gz | ||
Descripción: | Descargar |
|
Nombre del archivo: | PuntosYNotas.tar.gz | |
Tamaño: | 4.58 KB | |
Descargado: | 19 veces |