В этом случае, если вы на самом деле не необходимо исключение. Исключение составляет исключительный случай, который предотвращает продолжение программы, если он все еще может продолжаться, но при определенных обстоятельствах из-за пользовательского ввода или условий он может использовать предупреждение, чтобы сигнализировать об этом.
вы можете легко проверить ввод с помощью любого количества методов и повторить, пока не сможете получить действительный ввод :).
Если вы решили использовать исключение:
Вы можете посмотреть here для получения более подробной информации о том, как использовать исключение и here для того, как подкласс исключения и сделать определенный пользователь исключения
Таким образом, вы можете сделать 3 вещи:
1) есть утверждение - это вызовет ошибку утверждения с текстом, как заявление будет рассматриваться как ошибка
a = 1
b = 2
assert a==b, "A does not Equal B"
Утверждение обычно используется для проверки границ. assert index> = 0 и, как правило, отсутствует критический, но вы можете использовать их для тестирования, если это ваш личный код.
для вашего случая у вас может быть оператор switch/if-else, как вы сейчас делаете/выполняете операции. Так как @Ketouem говорит выше, у вас может быть список всех букв и чеков или dict (если бы у вас было больше таких букв, как 100, это было бы немного быстрее).
Питона вика дает общие рекомендации для хороших видов использования утверждает:
Места рассмотреть вопрос о создании утверждений:
2) Вы можете использовать один из встроенных исключений (смотрите here) и поднять один из тех; например
if(condition_not_met):
raise ValueError("You did not enter a correct option")
Они, как правило, имеют в виду specific uses.
3) Вы можете делать то, что делать Numpy и многие библиотеки и создавать свои собственные исключения (вы также можете использовать библиотеки, такие как Numpy-х LinAlgError, но если вы вручную отлова и Повторное выбрасывание обычно они имеют домен конкретных применений.
Чтобы создать свое собственное исключение, вы должны создать подкласс Exception не BaseException
например
class MyInputError(Exception):
def __init__(self, value):
self.value = value
def __str__(self):
return repr(self.value)
, а затем вызвать эту
if(condition_not_met):
raise MyInputError("Wrong input. Please try again")
наконец, вы всегда можете использовать, если тогда это и другие структуры управления, а затем выход - но это не то, что распространено в Python и чаще встречается в таких языках, как C.
В общем, пытаясь что-то и ловя ошибки является одним из нескольких ключевых парадигм в Python:
ЭСПЦ Легче попросить прощения, чем разрешения. Этот общий стиль кодирования Python предполагает наличие допустимых ключей или атрибутов и ловит исключения, если предположение оказывается ложным. Этот чистый и быстрый стиль характеризуется наличием множества попыток и исключений, кроме . Этот метод контрастирует со стандартом LBYL, общим для многих другими языками, такими как C.
- Python Glossary
http://docs.python.org/2/tutorial/errors.html#handling-exceptions – wflynny
Название говорит «обработка исключений», а ваше описание говорит «добавив исключение» , Что ты пытаешься сделать? Если вы хотите создать исключение, термин, который вы должны использовать Google, - это «создать исключение». Кроме того, ваше использование пока не так, возможно, вы собираетесь использовать здесь elif. –
Совет: используйте 'welcomeString.lower(). Startswith ('y')' вместо 'welcomeString.startswith (" y ") или welcomeString.startswith (" Y ")' –