Как остановить программу и как лучше это сделать?

Программа делает так, чтобы строка на подобие "1???10?" превращалась в "1010101". Мне нужно, чтобы если все знаки являются вопросами и если длина строки не входит в ограничения, то программа должна останавливаться. Если это возможно, то оптимизировать так, чтобы это было читаемо новичку :p

ad=str(input())
if len(ad)<1 or len(ad)>100:
    print(f'Вы не вошли в ограничения')
    #Вставьте закрытие программы
if len(ad)==ad.count('?'):
    print(f'MANY')
    #Вставьте закрытие программы
que=False
while que is False:
    ad=(ad.replace('?0','10'))
    ad=(ad.replace('?1','01'))
    ad=(ad.replace('0?','01'))
    ad=(ad.replace('1?','10'))
    if ad.find('?') == -1:
        que=True
if ad.find('11')!=-1 or ad.find('00')!=-1:
    print(f'NO')
else:
    print(f'{ad}')

Ответы (4 шт):

Автор решения: Zhihar

вызов функции exit, например

exit(0)

из любого места программы приведет к ее завершению

→ Ссылка
Автор решения: SimpleDev

Лучше сделать функцию def И чтобы остановить програму нужно вставить просто return

→ Ссылка
Автор решения: Soup

Есть различные способы, но самый надёжный - sys.exit().
Разве что, для него надо сначало импортировать библиотеку sys с помощью import sys . Можно ещё запихнуть все в def main(): и делать return, так даже быстреее работать, из-за специфики локальных переменных в питоне.
А вот exit(0) или os.abort() крайне не рекомендую использовать, ибо exit(0) работает через выдачу ошибки с кодом 0, а os.abort нужен лищь для экстренного завершения.
Итог: используйте sys.exit() или return

→ Ссылка
Автор решения: GrAnd

Просто добавить блок else и программа сама выйдет в конце.

ad=str(input())
if len(ad)<1 or len(ad)>100:
    print(f'Вы не вошли в ограничения')
elif len(ad)==ad.count('?'):
    print(f'MANY')
else:
    while '?' in ad:
        ad=ad.replace('?0','10').replace('?1','01').replace('0?','01').replace('1?','10')
    if '11' in ad or '00' in ad:
        print(f'NO')
    else:
        print(ad)
→ Ссылка