Python

Тема в разделе "Софт", создана пользователем gerodoth, 27.03.18.

  1. gerodoth

    gerodoth Активный участник

    10.612
    1.304
    def clr(str):
    str = str.replace('0'*LENGTH, '')
    return str

    из строки нужно удалить подстроки из нулей длиной LENGTH.
    согласно Replace a substring in a string with null in python
    эта конструкция, по идее, должна это делать, но не делает. где ошибка?
     
  2. HELL'o

    HELL'o Активный участник

    5.238
    263
    Выяснила, что оно не работает, если количество запрашиваемых на удаление нулей в строке больше, чем фактическое количество нулей в данной строке

    щас сделаю скрины для пояснения

    Про Python - Справочник - string.replace
    Ещё смотри, правильно ли ты вызываешь функцию. По поводу версий не скажу, у меня на 3.6.* работает
     

    Вложения:

    • _python1.png
      _python1.png
      Размер файла:
      5,7 КБ
      Просмотров:
      601
    • _python2.png
      _python2.png
      Размер файла:
      5,7 КБ
      Просмотров:
      599
    • _python3.png
      _python3.png
      Размер файла:
      6,5 КБ
      Просмотров:
      597
  3. HyperMe

    HyperMe Активный участник

    796
    135
    Если LENGTH объявлен и отступы правильные, то работать будет.
    Но, если условие, что удаляться должно при кол-ве нулей == LENGTH, то метод replace тут не подойдет совсем.
    Если цель обучение, то лучше самостоятельно алгоритм реализовать, имхо. Перебираем посимвольно строку, считаем нули, проверяем условие, удаляем.
     
  4. Иной гость

    Иной гость Активный участник

    22.196
    3.415
    Вот эта вот LENGTH - она странная. Я когда вижу переменную капсом сразу думаю про константу, но в питоне константы не так задаются. Если это переменная, то у вас там точно область видимости для нее задана? Может быть оно просто не видит ее?
    Ну и не проще ли в функцию параметр второй передавать, число нулей на удаление?
     
  5. gerodoth

    gerodoth Активный участник

    10.612
    1.304
    да, это переменная, в одной обучалке их так называли. в общем косяк был мой, я для глобальной переменной вызывал это как метод, а не как функцию, а сама функция работает.