Во-первых, ваш исключением никогда не будет достигнуто ... вы не «попробовать» что-нибудь, что поднимет ValueError исключение ... Прежде всего позвольте мне показать, как к этому, а затем в основном говорят, что в этом случае вы не получите ничего, используя попробовать/за исключением:
coin_int = ("1p", "2p", "5p")
while True:
coin_type = input("Input your coin: 1p, 2p, 5p etc.: ")
try:
coin_int.index(coin_type)
print("value accepted, continuouing...")
break
except ValueError:
print("That value of coin is not accepted, try again and choose from", coin_int)
Но это равносильно, и в этом случае так же, как эффективный (если не лучше, на самом деле, как в производительности и читаемость):
coin_int = ("1p", "2p", "5p")
while True:
coin_type = input("Input your coin: 1p, 2p, 5p etc.: ")
if coin_type in coin_int:
print("value accepted, continuouing...")
break
else:
print("That value of coin is not accepted, try again and choose from", coin_int)
Если вы действительно хотите, чтобы остановить выполнение программы, то выполните одно из следующих действий в исключении:
raise
поднять excception пойманного с сообщением по умолчанию
raise ValueError("That value of coin is not accepted, try again and choose from", coin_int)
, которые также могут быть использованы в else
воскрешать конкретное исключение с пользовательским сообщением