Чтобы предотвратить бесконечный цикл, необходимо изменять переменную `index` таким образом, чтобы в какой-то момент условие цикла перестало быть истинным. Если вы хотите, чтобы функция `print_numbers` выводила последовательность чисел от 4 до 1 и строку "finished!", необходимо убывать переменную `index` на каждом шаге цикла.
Ниже приведен пример того, как может быть реализована функция `print_numbers`:
```python
def print_numbers(last_number):
index = last_number
while index > 0: # Пока index больше 0, продолжаем цикл
print(index) # Вывод текущего значения index
index -= 1 # Уменьшение index на 1
print("finished!") # Вывод строки после завершения цикла
# Вызов функции с параметром last_number равным 4
print_numbers(4)
```
В этом коде переменная `index` инициализируется значением `last_number`, в данном случае это 4. Затем, в цикле `while`, `index` уменьшается на 1 на каждой итерации (`index -= 1`). Цикл продолжается до тех пор, пока `index` больше 0. После выхода из цикла программа выводит строку "finished!". Этот код корректно выводит числа от 4 до 1 и строку "finished!" на экран.