//Написал простейшую программу для наглядного примера. Суть в том, что ограничено число попыток ввода неправильного пароля
//attempts - количество попыток, counter - счетчик неудачных попыток
const
attempts = 3;
password = '12345';
var
counter: integer;
str: string;
begin
counter := 0;
repeat
write('Введите пароль: ');
readln(str);
if not(str = password) then
begin
counter := counter + 1;
writeln('[неверный пароль] осталось попыток: ', attempts - counter);
writeln();
end;
if (counter = attempts) then
begin
writeln('Попытки ввода закончились!');
break;
end;
until (str = password);
if (str = password) then
writeln('Вы ввели правильный пароль!');
end.
Синтаксис питона отличается от синтаксиса любого другого ЯП. Не исключение являются и отступы. Суть в том, что на каждый вложенный код инструкции полагается одинаковое количество, скажем так, пробелов. Как правило их 4, и не стоит их изменять, т.к. они уже заложены в функцию Enter то есть табуляцию.
Под вложенным кодом инструкции я подразумеваю вот такую конструкцию:
Основная инструкция:
_ _ _ _ (4 пробела, или же просто нажатие на Enter) Вложенная инструкция
Основная инструкция это операторы ветвления(if, elif, else), операторы цикла(for, while), классы, декораторы и т.д.
Вложенная инструкция - код программы внутри
Надеюсь, понятно всё объяснил