2015-11-19 5 views
1

Я написал эту очень простую программу в Python:Как я могу исправить эту простую программу?

a=input('Enter the grade:') 

if int(a)<5: 
    print('D') 
elif 5<=int(a)<10: 
    print('c') 
elif 10<=int(a)<15: 
    print('B') 
elif 15<=int(a)<=20: 
    print('A') 
elif 20<int(a): 
    print('You idiot !') 

else : 
    print('Write a number idiot !') 

И программа будет работать, если пользователь написать номер, но если они пишут строку программа выдаст сообщение об ошибке:

Traceback (most recent call last): 
    File "C:\Users\sony\Desktop\Grader.py", line 2, in <module> 
    if int(a)<5: 
ValueError: invalid literal for int() with base 10: 'h' 

Как я могу изменить программу, чтобы пользователи могли писать что угодно!

+0

Можете ли вы уточнить, что вы точно пытаетесь сделать? Каковы ваши входы и ожидаемые результаты? – Rubal

+0

Кстати. Призыв к идиотам пользователей был бы причиной для того, чтобы кого-то кого-то кого-то кого-то уволить. –

+0

Ну, я не ваш сотрудник! и это программа упражнений для начинающих, таких как я, которые мой друг решил сделать это немного веселым! как вы думаете, мы бы назвали пользователей идиотом в реальной программе (например, проект, который нам позже нужно написать в конце семестра)? – user82087

ответ

0

Вы можете просто проверить тип переменной или попробовать/исключить. (Последний раз это самый простой способ, и увидеть Достаточную здесь)

0

Вы можете использовать эту функцию для проверки значения ввода, является ли целым числом или нет:

In [1]: def is_int(value): 
...:  try: 
...:   int(value) 
...:   return True 
...:  except ValueError: 
...:   return False 
...:  

In [2]: is_int(6) 
Out[2]: True 

In [3]: is_int('something') 
Out[3]: False 

Надеется, что это помогает!

1

Modify:

a=input('Enter the grade:') 

к:

a = None 
while not a: 
    try: 
     a = int(input('Enter the grade:')) 
    except ValueError: 
     print("please enter a valid integer!) 
    else: 
     break 
+0

Что делать, если они набирают '0'? – khelwood

+0

@ хелвуд хороший улов, вот вы идете :) – alfasin

+0

Почему не просто 'while True'? Кроме того, если вы не используете 'e', тогда не нужно' as e'. –

Смежные вопросы