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

    −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
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    number = input("Введите цифру от 1000, до 20000: >")
    if int(number) < 1000 or int(number) > 20_000:
        print("Неправильное число")
        exit(0)
     
    j = ''  # сделать стринг
     
    i = 0  # for
     
    maximum = []  # поиск максимального числа
     
    count = 0  # ошибка
     
    while i < int(number):
        i += 1  # ++
        i_string = str(i)
        j = i_string[::-1]
        if int(i) + int(j) == int(number):
            maximum.append(int(i))
            count += 1  # ошибка
    if count == 0:
        print(0)
        exit(0)
    print(max(maximum))

    Цель кода была в том, чтобы найти максимальный x, по формуле X+F(x) = N, где N число, которое ввели, а F(X) перевёрнутый X
    x = 1234 f(x) = 4321

    Запостил: warzon131, 26 Октября 2020

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

    • А есть ли способ перевернуть число, без использования строки?
      Ответить
      • def reverse_number(a):
            assert(a >= 0)
            b = 0
            while a > 0:
                b = b * 10 + a % 10
                a /= 10
            return b
        З.Ы. Хотя для лабы на питоне и через строку сойдёт, конечно.
        Ответить
    • Ого, это на ЕГЭ такое?
      Ответить
      • Я в универе учусь, дали задачу дополнительную, сделал, 100 баллов за проект получил
        Ответить
    • а вообще, exit(0) в алгоритмах это плохой тон или пойдёт?
      Ответить
      • Х.з., за пределами main()'а не стоит этим злоупотреблять, наверное.

        З.Ы. Ну и почему 0 если ты об ошибке сигналишь? Зачем наёбывать вызывающего?
        Ответить
        • по условиям задачи, если нет ответов, как для числа 1234, то должен 0 выводиться.
          а завершаю, чтобы не пошло печатать массив, который пустой.
          Ответить
          • > print("Неправильное число")
            > exit(0)

            Я вот про эту ветку. Здесь то явно не успех.
            Ответить
            • Мб не правильно описал, имею ввиду, что 0 это вывод, который должен быть, если число не имеет решения
              Ответить
              • А в ветке где решения нету (строка 23) я бы просто else поставил. Очень наглядно получится:
                if count == 0:
                    print(0)
                else:
                    print(max(maximum))
                Ответить
                • А я и не додумался до такого
                  Ответить
                  • Ну и я бы сам алгоритм в функцию загнал, которая просто результат возвращает. Чтобы его можно было тестами покрыть или ещё где-то позвать. А ввод-вывод уже за пределами этой функции.

                    Хотя для лабы или одноразового скрипта не принципиально, конечно.
                    Ответить
          • так 0 должен в stdout выводиться, а не в error code
            Ответить
            • Ну 0 в stdout и вернуть успех (0) в error code. Эта ветка всё-таки успешная по условию.
              Ответить
    • показать все, что скрытоvanished
      Ответить
      • Кстати, а как у вас в питоне к assert'ам относятся? Они никуда не пропадут в "релизной сборке"?
        Ответить
        • показать все, что скрытоvanished
          Ответить
          • Да просто мне после крестов как-то неловко юзать ассёрты для проверки внешних данных. Там то они 100% отваливаются.

            Про исключение соглашусь: будет и текст в stderr (не stdout, который часто перенаправлен!) и бектрейс и exit code 1 автоматом.
            Ответить
            • показать все, что скрытоvanished
              Ответить
              • > завершать программу исключением в крестах

                У меня там обычно обработчик в main'е, поэтому норм.
                Ответить
                • показать все, что скрытоvanished
                  Ответить
                  • Дык в крестах это тоже делает рантайм! Он даже выводит исключение. Просто потом terminate() зовётся со всеми вытекающими (деструкторы не зовутся, корка и т.п.).
                    Ответить
                    • показать все, что скрытоvanished
                      Ответить
                      • > не часть стандарта небось

                        Само собой. Ну terminate() при необработанном исключении - вроде часть стандарта, а сама диагностика и корки - нет.
                        Ответить
                        • показать все, что скрытоvanished
                          Ответить
                          • Попробуй вручную terminate() позвать, вроде тоже задампается на винде.
                            Ответить
                            • показать все, что скрытоvanished
                              Ответить
                              • Ты будешь смеяться, но в msdn есть описание функции signal. Можно обработчик навесить. Неебу зачем.
                                Ответить
                                • показать все, что скрытоvanished
                                  Ответить
                                  • Ничего в «Винду» не завезли. Функция «signal» целиком определена в «CRT». Это такой же костыль, как в «Cygwin» или в «Mingw», целиком расположенный в библиотеке языка.

                                    signal выполняет SetConsoleCtrlHandler и шаманит с «exception-action table».
                                    Ответить
                              • > then invokes the Windows Error Reporting Service mechanism

                                Ну т.е. дамп таки будет даже если не дебажная сборка. Просто без злоебучего гуёвого окошка.
                                Ответить
                                • показать все, что скрытоvanished
                                  Ответить
                                  • Это другой случай. Здесь terminate() само собой не зовётся, в отличие от крестовых исключений. А вот обработчик какого-нибудь SIGSEGV может, наверное.
                                    Ответить
                                    • показать все, что скрытоvanished
                                      Ответить
                                      • Ну т.е. я не зря пишу в крестопрогах try { ... } catch (...) { /* тут логируем исключение */ return 1; } чтобы моя прога корректно завершалась с ошибкой, а не падала в дамп.
                                        Ответить
                                        • показать все, что скрытоvanished
                                          Ответить
                                          • Эрланг какой-то. Да и синтаксис модулей с этим двоеточием чем-то похож. Они не им вдохновлялись случаем?
                                            Ответить
                                            • показать все, что скрытоvanished
                                              Ответить
                                              • А если ты сервер приложений, то у тебя тем более вся работа идёт в слейвах. А их не жалко, пусть лучше упадут, мастер новых запустит с чистого листа.
                                                Ответить
                                              • а что там за коньтекст?

                                                thesis это вроде тема дипломной работы по-буржуйски
                                                Ответить
                                                • показать все, что скрытоvanished
                                                  Ответить
                                                  • охуенно, когда из дипломной работы вырастает ЯП, про который вообще левые питухи пиздят через тридцать лет на сайте, который ориентирован на другую половину Земли
                                                    Ответить
                                                    • показать все, что скрытоvanished
                                                      Ответить
                                                      • показать все, что скрытоvanished
                                                        Ответить
                                                      • http://pl-euphoria.narod.ru/xml-data.png
                                                        - оо, охуенно, я тоже в винде ставлю панель задач наверх
                                                        Ответить
                                                        • Давай поймем, что есть у нашего героя

                                                          Windows XP, Opera, антивирус (зонтик?) проводной интернет или дайлап (экраничики), само собой far, windirtree, msn messenger, gimp, все существующие в то время браузеры (зачем?!), и весьма мелкий экран
                                                          Ответить
                                                          • иконка с чёрно-белым квадратом слева от справки вроде знакома, но не могу вспомнить, что это
                                                            Ответить
                                                            • показать все, что скрытоvanished
                                                              Ответить
                                                              • ты переоцениваешь мою заинтересованность

                                                                тем более, когда действительно есть Инканус
                                                                Ответить
                                                              • «Инканус» не помнит иконок многих программ, потому что он их запускает через «Win+R» или через «FAR».
                                                                Ответить
                                                                • показать все, что скрытоvanished
                                                                  Ответить
                                                                  • Конечно, я за фар
                                                                    А как без него на винде?
                                                                    Ответить
                                                                  • Не сосёт, я фон сменил на чёрный.
                                                                    Ответить
                                                                    • Если все меняют на чёрный, то почему он не по дефолту такой?
                                                                      Ответить
                                                                      • показать все, что скрытоvanished
                                                                        Ответить
                                                                        • Edit.com синий, как и «Кубейсик». Чёрным был «GW-BASIC», но его, наверное, уже никто не помнит.
                                                                          Ответить
                                                                          • показать все, что скрытоvanished
                                                                            Ответить
                                                                            • Чёрный в «Кубарсике» и в «edit.com» хелп. Почему-то для хелпа выбрали другой набор цветов.
                                                                              Ответить
                                                                              • Всем насрать.
                                                                                Ответить
                                                                              • а вообще синий фон древнее
                                                                                https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcS99VIqy_vhT231qnJw9 2Fcwoa5-8-sv7OJjQ&usqp=CAU
                                                                                Ответить
                                                                                • На «Сommodore 64» вроде тоже у «Бейсика» синий фон был.
                                                                                  Ответить
                                                                                  • показать все, что скрытоvanished
                                                                                    Ответить
                                                                                  • показать все, что скрытоvanished
                                                                                    Ответить
                                                                                    • Я пробовал несколько мумуляторов C64. Даже в «The great Gianna sisters» играл.

                                                                                      https://youtu.be/Ne-09Bs_bRo
                                                                                      Ответить
                                                                                      • ого, на марио похоже

                                                                                        А вот это конечно сексизм, сейчас бы такую обложку не смогли бы сделать

                                                                                        https://upload.wikimedia.org/wikipedia/en/7/70/The_Great_Giana_Sisters_Coverart.png
                                                                                        Ответить
                                                                                        • Авторы «Марио» в своё время даже обвинили их в плагиате.
                                                                                          Ответить
                                                                                          • я на комодоре играл только в какого-то перца, который ездил на велике и почту кидал: paperboy, чтоль
                                                                                            Ответить
                                                                                        • угу

                                                                                          сегодня всё намного целомудреннее

                                                                                          https://www.mobygames.com/images/covers/l/428914-nier-automata-day-one-edition-windows-front-cover.jpg
                                                                                          Ответить
                                                                                          • показать все, что скрытоvanished
                                                                                            Ответить
                                                                                            • Я тебя могу уверить, что тридцать лет назад тоже была цензура

                                                                                              Можешь почитать про Probotector или как вообще Контру переименовывали, например
                                                                                              Ответить
                                                                                              • показать все, что скрытоvanished
                                                                                                Ответить
                                                                                                • Кого таких?
                                                                                                  Ответить
                                                                                                  • показать все, что скрытоvanished
                                                                                                    Ответить
                                                                                                    • хм

                                                                                                      https://cdn.shopify.com/s/files/1/1366/2939/products/STREETS_PS4_UK_3D_1024x1024.png?v=158876 1329

                                                                                                      Тут их аж три. Ну ок, с видимым бюстом три.

                                                                                                      Ларка за годы стала сильно скромнее, но всё равно

                                                                                                      https://livecards.co.uk/pi/shadow-of-the-tomb-raider-pc-37447.png

                                                                                                      ну а промо-материалов пруд пруди (GTA, Saints Row the Third)

                                                                                                      конечно, обложка Giana Sisters это вообще какой-то постер для b-movie, соглашусь

                                                                                                      раз ты фанат 80-х, я тебе ещё принёс: http://2.bp.blogspot.com/-HnYOnMcIULs/UQchNRGOLXI/AAAAAAAAA1U/1fwipI8nVmU/s640/tumblr_lsv56pUnMT1qjeisgo1_500.jpg
                                                                                                      Ответить
                                                                                        • У C64 была интересная звуковуха:
                                                                                          https://ru.wikipedia.org/wiki/MOS_Technology_SID

                                                                                          Это не 8-битный ЦАП, как было у игровых приставок той эпохи, а аппаратный трёхканальный FM-синтезатор с фильтрами и с формирователем огибающей.
                                                                                          Ответить
                                                                                          • показать все, что скрытоvanished
                                                                                            Ответить
                                                                                            • Ага.

                                                                                              Для писюка SB вышел в 1989-м году, GUS — в 1992-м. А SID на C64 был уже в 1982-м.
                                                                                              Ответить
                                                                                              • еще были адлиб и дизни саунд систем

                                                                                                кто-то из них умел только PCM, кто-то только MIDI (уже не помню), но SB всех убил.

                                                                                                Как ща помню три переменных окружения: IO, DMA и IRQ
                                                                                                Ответить
                                                                                                • Переменная окружения была одна (BLASTER или типа того), но в её значении были три ключевых слова (что-то типа "IO=265 IRQ=5 DMA=7").
                                                                                                  Ответить
                                                                                                  • блядь, значит все таки напутал(((

                                                                                                    я чото писал даже него, помню, что он дочитывал буфер, и дергал меня за IRQ..
                                                                                                    Ответить
                                                                                                    • Вот, нашёл в файле C:\Windows\System32\AUTOEXEC.NT реальный пример:
                                                                                                      SET BLASTER=A220 I5 D1 P330 T3
                                                                                                      Ответить
                                                                                                      • 220 это для проца, который звук играл, а 330 это для Midi?

                                                                                                        IRQ и DMA понятно, что такое T надо гугльнуть
                                                                                                        Ответить
                                                                                                        • Начал гуглить. Нашёл параметр H — его нужно установить, если карточка использует два канала DMA (оказывается, и такое бывало).
                                                                                                          Ответить
                                                                                                        • Да, P — это порт MIDI (MPU-401), J — это порт джойстика, E — это порт миди для AWE32 (EMU8000).

                                                                                                          T — тип звуковой карты.
                                                                                                          Возможные значения:
                                                                                                          1 — Sound Blaster.
                                                                                                          2 — Sound Blaster Pro.
                                                                                                          3 — Sound Blaster 2.0.
                                                                                                          4 — Sound Blaster Pro (SB Pro 2.0).
                                                                                                          5 — MCA Sound Blaster.
                                                                                                          6 — Sound Blaster 16, Vibra 16 или AWE32.
                                                                                                          Ответить
                                                                                                          • MPU-401 это обычный старый миди, а AWE32 вроде болеекрутой был?

                                                                                                            >джойстик
                                                                                                            я тут недавно как раз приносил его чудесный API, где время между записью и чтением кодирует положение палочки)

                                                                                                            >тип
                                                                                                            ох, сколко же их было. У меня под паскаль был спец модуль натырен, который умеет играть .wav и .midi на разных картах, и имел свою утилиту для настройки даже
                                                                                                            Ответить
                                                                                                      • >C:\Windows\System32\AUTOEXEC.NT
                                                                                                        пиздец, и как тебе живется с тремя гигами памяти?
                                                                                                        Ответить
                                                                                                • Adlib:
                                                                                                  • в 1987-м году первая звуковая карта;
                                                                                                  • в 1992-м году банкротство.

                                                                                                  Недолго что-то они продержались.

                                                                                                  В 1984-м году у «IBM» вышла машина «Junior»:
                                                                                                  https://en.wikipedia.org/wiki/IBM_PCjr

                                                                                                  Она умела выдавать трёхголосый меандр (без частотной модуляции), что было, конечно, лучше писиспикера (у него меандр был одноголосый), но хуже, чем SID и звуковые карты, появившиеся в конце 1980-х — начале 1990-х.

                                                                                                  Погуглил «DSS» (он называется «дизни саунд соурс», а не «систем»), нашёл вот эту статью:
                                                                                                  https://bellofuturo.livejournal.com/4760.html

                                                                                                  Как я понял, это банальный ковокс. Аналогичную питушню можно было спаять самому на 16 резисторах и воткнуть в LPT-порт.

                                                                                                  *****

                                                                                                  Итого получается, что в 1980-х писюк мог порадовать только писиспикером, а на C64 уже был хоть какой-то синтезатор.
                                                                                                  Ответить
                                                                                                  • Про джуниора я читал в Журдена) Там было много нота бене типа "данный сервис есть только у JR (или наоборот -- нету у JR), так что всегда проверяйте тип машины, его по такому-то адресу записывает бивос"
                                                                                                    Ответить
                                                                    • > я фон сменил на чёрный

                                                                      black lives matter?
                                                                      Ответить
                                            • Лолшто. В эрланге можно и нужно ловить исключения, если ты знаешь, что они вот тут возникнут, и знаешь что с ними делать. Let it crash про другое, это про случаи, когда после исключения ты не знаешь, что дальше делать с пользовательской сессией какой-нибудь, и проще на неё забить и начать с чистого листа.
                                              Ответить
              • Ну питоний assert это же просто raise AssertionError, не? Никакой магии там вроде больше и нет.
                Ответить
    • показать все, что скрытоСогласитесь, код на Python вообще нечитаем. Даже долбоёбская Ява в этом плане лучше.
      Ответить

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