1. Python / Говнокод #11969

    −103

    1. 1
    2. 2
    ids = [str(int(str(float(x)))) for x in ids.split(",")]
                    ^^^

    Знакомый 1С-ник в 1С-мессенджер кинул.
    Специальная олимпиада для гуру Пайтона.
    В каком случае данная операция кинет эксепшн при вызове int, помеченного в коде?

    Запостил: serpinski, 21 Октября 2012

    Комментарии (10) RSS

    • В любом.
      >>> str(int(str(float('1'))))
      Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      ValueError: invalid literal for int() with base 10: '1.0'
      Ответить
    • Где здесь 1с, serpinski? ;)

      Интересно, зачем такой странный каст? Автор думал, что это округлит число?
      Ответить
      • 1c в голове вместо мозгов у автора кода.
        Ответить
    • >1С-мессенджер
      Oh WOW!
      Ответить
    • охуж эти гуру питона
      Ответить
    • Если мне нужен int, я так и указываю в коде "получить int". Из той хрени, которую передаю на вход. Я не хочу знать, как это значение будет получено, мне нужно значение, а не исключения. Здесь получается, в задачи программиста входит указывать в программе чёткую и строгую последовательность действий. Отвлекаться на не совсем нужные, а порой и совсем не нужные и лишние, описания.
      В связи с этим вопрос: чем отличается эти ваши строгие языки, которые падают от маленького чиха, от низкоуровневого ЯП? Хотя бы ассемблера.
      Вы так ими гордитесь, ваяя сотни конструкций. Да, в некоторых случаях, возможно описать большую последовательность, маленькой строчкой, но и такой возможностью мало кто пользется (кто-то не осилил, кому-то лень, кто-то уже нагуглил). Пользуются библиотеками (готовыми), ведь лучше подключить огромную библиотеку для решения своей маленькой, но важной задачки, чем чуточку напрячься, подумать и придумать.
      Может сила привычки? Может человек привык всю жизнь ходить на работу через теплотрассу, каждый день перелезая через огромные трубы, и ему кажется это правильным? Это стагнация? Это консерватизм? Это мамкина сиська?
      простите, но у меня взрыв эмоций
      Ответить
      • (отстреливаясь Фейри от жира)

        а ничем не отличаются, выстрелить себе в ногу можно на любом яп. выбор языка зависит сугубо от мышления.
        Ответить
      • Есть один язык, который пытается любой ценой выцарапать из говна орешки.
        PHP называется.
        http://ideone.com/fIkRhM
        И я бы не сказал что это правильное поведение.
        Ответить
        • > И я бы не сказал что это правильное поведение.
          Да, в реализацию intval закралась досадная ошибка. intval("WTF123") тоже должен был вернуть 123.
          Ответить

    Добавить комментарий