Error handling using integers as input

前端 未结 2 474
星月不相逢
星月不相逢 2020-12-02 02:10

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(inp         


        
相关标签:
2条回答
  • 2020-12-02 02:46
    try:
       mark = int(input("Please enter the exam mark out of 100 "))
    except ValueError:
       print("\nPlease only use integers")
    
    0 讨论(0)
  • 2020-12-02 03:04

    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().

    0 讨论(0)
提交回复
热议问题