Top.Mail.Ru
Ответы
Аватар пользователя
2 недели назад
от

СРОЧНО ПОМОГИТЕ ПОЖАЛУЙСТА КОД К ПИТОНЕ!!!!!!!!

код написан правильно, но выдает ошибку
сам код:
s="5"*72
while "333" in s or "555" in s:
if "333" in s:
s= s.replace("555", "3", 1)
else:
s= s.replace("333", "5", 1)
print(s)
ошибка :
Traceback (most recent call last):
while "333" in s or "555" in s:
^^^^^^^^^^
KeyboardInterrupt

Process finished with exit code -1073741510 (0xC000013A: interrupted by Ctrl+C)
помогите пожалуйста, что делать?

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Ученик
2нед

Проблема в вашем коде заключается в том, что он зацикливается бесконечно. Это происходит из-за неправильной логики замены подстрок.

Вот исправленный код:

```python
s = "5" * 72
while "333" in s or "555" in s:
if "555" in s: # Сначала проверяем "555"
s = s.replace("555", "3", 1)
else:
s = s.replace("333", "5", 1)
print(s)
```

Основные изменения:
1. В условии `if` сначала проверяем наличие "555", а потом "333"
2. Заменяем именно ту подстроку, которую проверили

Ошибка KeyboardInterrupt возникла потому, что вы вручную прервали выполнение бесконечного цикла (нажали Ctrl+C). В исходном коде условие `if "333" in s` выполнялось первым, но при этом заменялось "555", что могло создавать бесконечный цикл.

Исправленный код должен завершиться и вывести результат. Для входных данных "5"*72 он должен вывести строку, в которой все возможные замены уже выполнены.
Ответ от дипсик)

Аватар пользователя
Знаток
2нед

s = "5" * 72
while "333" in s or "555" in s:
if "555" in s: # Проверяем наличие "555" в строке
s = s.replace("555", "3", 1)
else: # если 555 нет , то ищем 333
s = s.replace("333", "5", 1)
print(s)

Аватар пользователя
Мудрец
2нед

Сорян, питон хня со своей динамической типизацией данных. Чеды пишут на низкоуровневых языках 🤙

Аватар пользователя
Мыслитель
2нед

Удачи