I am trying to add an additional assertion for values that aren’t numbers but I dont know how to go about it. I did try adding a and type(score) == float but it didn’t work, I received a value error saying a string cannot be converted to float. I just want the program to return the assertionerror message in the code when the value entered is negative and non numerical.
try: score = float(input('Please enter your grade: n')) assert score >= 0 and score <= 100 and type(score) == float except AssertionError: print("Error, values must be between 0 and 100") else: if (score >= 0 and score < 70): print('Your grade is an F') elif (score > 69 and score <= 79): print('Your grade is a C') elif (score >= 80 and score <= 82): print('Your grade is a B-') elif (score >= 83 and score <= 86): print('Your grade is a B') elif (score >= 87 and score <= 89): print('Your grade is a B+') elif (score >= 90 and score <= 92): print('Your grade is an A-') elif (score > 92 and score <= 100): print('Your grade is an A')
Advertisement
Answer
It looks like your user input something other than a float at the input()
line. If you want this to be more resistant to things like that, you can separate out ValueError
in your try/except
case. ValueError
will be thrown when a non-float-able value is passed to the float()
function. Something like
try: score = float(input('Please enter your grade: n')) assert score >= 0 and score <= 100 and type(score) == float except AssertionError: print("Error, values must be between 0 and 100") except ValueError: print("Error, you must give a number")