Змея / Говнокод #23032 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 partizanes, (Updated )

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

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

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

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8