3. Что будет напечатано, если пользователь введет строку “Код=12345”:
s = input(“Введите, пожалуйста, строку: ”)
if s[3] == “=”:
if s[5:7] == “34”:
print(“Ok!”)
else:
print(“Error!”)
else:
print(“None”)
Ответы
Ответ:
Программа выведет "Error!".
Объяснение:
s[3] - это операция доступа к элементу строки с индексом 3. Поскольку в языках программирования счёт начинается с нуля (т.е. 0,1,2,3...), то s[3] выдаст нам 4 по счёту элемент. В данной строке это элемент "=".
Проверка s[3] == "=" выдаёт true, и программа переходит внутрь if-оператора.
! Если бы проверка s[3] == "=" не выполнилась бы, например строка имела бы вид "Код1234", (т.е. s[3] == "=" здесь выдаст false), то программа перешла бы внутрь блока else, и получился бы вывод "None". !
Далее внутри этого if-оператора есть ещё одна проверка, а именно if s[5:7] =="34". s[5:7] это также оператор доступа к элементам строки, но в этом случае мы получаем не один символ, а не сколько (такая операция называется слайсинг, или срезка от англ.slice). В Python при такой срезке указывается начальный и конечный индекс, который мы хотим получить. НО следует помнить, что в таком случае начальный индекс попадает в результат, а конечный - нет.
Поэтому если мы пытаемся получить s[5:7], то мы получим 5, 6, но не 7 по счёту элементы.
В данном случае s[5:7] выдаст "23", что не проходит проверку s[5:7] == "34", и программа перейдет в блок else, в котором происходит вывод строки "Error!"