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

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    def inputCountSeq():
        try:
          countSeq=int(input("Введите количество элементов в последовательности от 1 до 1000: \r >"))
        except :
          print("[Ошибка] Введенные вами данные неверны")
          inputCountSeq()
          
        if (countSeq > 1000 or countSeq < 1):
          print("[Ошибка] Введенное число не соответствует указанному диапазону( 1 <= x <= 1000)")
          inputCountSeq()
          
        return countSeq
        
    print(inputCountSeq())

    Вводим -1 , получаем ошибку "Введенное число не соответствует указанному диапазону" ,после чего вводим 1 , а в возвращается все равно -1.

    https://repl.it/IAMA/3

    Запостил: partizanes, 16 Мая 2017

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

    • показать все, что скрытоДанный сайт не предназначен для публикации каких-либо кодов.
      Ответить
    • Чтобы познать рекурсию, ты должен сначала познать рекурсию
      Ответить
    • Из-за разного количества пробелов в отступах сначала показалось, что это Паскаль какой-то
      Ответить
    • У вас динамическая типизация протекла.
      inputCountSeq() -> return inputCountSeq()
      Ответить
    • Ты только что рекурсию.
      Ответить
    • показать все, что скрытоплюсца
      Ответить
    • Я тоже говнокодер, потому что если не считать того, что вместо inputCountSeq() внутри функции надо писать countSeq = inputCountSeq(), других косяков я не заметил. Сам бы так и сделал.
      Ответить
      • > других косяков я не заметил
        Рекурсия вместо цикла на ровном месте? Если вводить некорректные данные достаточно долго, можно уронить программу с переполнением стека (ну или кучи, которая требуется для хранения стека).
        Ответить
        • О стеке я не подумал. Да, в таком случае лучше оформить циклом.
          Ответить
        • А tail call Гвидо сознательно не стал оптимизировать, чтобы стектрейсы няшные были...
          Ответить

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