5

Ive set up this program that checks the mark out of 100 for a test. If the user inputs less than 60 it should say fail if more than 59, pass.

mark = int(input("Please enter the exam mark out of 100 "))
if mark < 60:
    print("\nFail")
elif mark < 101:
    print("\nPass")
else:
    print("\nThe mark is out of range")

how do i get the program not to have errors if the user does not input the Integer.

Please help, is there a quick solution that 14 year olds would understand?

2
  • If you're using python 2, use raw_input instead of input. Then follow one of the answers below. Commented Jul 11, 2012 at 12:46
  • 1
    If the user inputs less than 60 it should say fail if more than 59, pass. So what is the passing score? 59.5? :) Commented Jul 11, 2012 at 12:47

2 Answers 2

6

Save the input in a variable and convert to an integer separately:

import sys

i = input("Please enter the exam mark out of 100 ")
try:
    mark = int(i)
except ValueError:
    print('\nYou did not enter a valid integer')
    sys.exit(0)
if mark < 60:
    print("\nFail")
elif mark < 101:
    print("\nPass")
else:
    print("\nThe mark is out of range")

If it fails (i.e., you get a ValueError) then print a message and exit. You can explain (to a 14-year old) that int() needs a valid integer as input and it will raise a ValueError otherwise. That makes sense because only strings that contain an integer can be converted by int().

Sign up to request clarification or add additional context in comments.

Comments

4
try:
   mark = int(input("Please enter the exam mark out of 100 "))
except ValueError:
   print("\nPlease only use integers")

1 Comment

"Check its type" -- It will always be a string, (which is why int is needed).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.