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

    −108

    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
    __author__ = 'КотейКККин'
    
    # Комментарий неуместен.
    # О странности автора код сам все скажет.
    
    import random
    the_number = random.randint(1, 20867248)
    print("Поиграем? Я загадал число от 1 до 20867248.")
    print("У вас 1 попытка")
    guess = int(input("Ваше предположение: "))
    if guess != the_number:
        print("Лошара, даже число угадать не можешь. И какой ты 'мужик' после этого...?")
    else:
        print(" O_O ты угадал??? По-любому вангуешь ;)")

    Приобрел недавно ноутбук с рук, но чувак не почистил систему. Нашел на просторах его жестка в папках "обучение"...автор действительно имел незаурядное мышление о_О
    P.S. Минусы ставьте за код, а не мне))

    Запостил: Nubia_Y, 01 Декабря 2014

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

    • Походу настоящий мужик должен сделать 4 вещи:
      1) Вырастить дом
      2) Построить дерево
      3) Посадить сына
      4) Угадать астрономическое число с первой попытки
      Ответить
    • Напомнило. В доисторические времена была такая игра, "Пики-фамы" называлась. Суть такова, что при попытках отгадать задуманное число давались подсказки, причём если цифра стояла на своём месте - сообщалось количество цифр "пик", если цифра присутствовала, но стояла не на своём месте - количество цифр "фам". Но для тех времён загадывались четырёхзначные числа.
      Сейчас, я смотрю, люди прогрессируют.
      Ответить
      • Быки и коровы!
        Ответить
      • А еще есть такая игра которая называется Бангладеш.
        Играют в неё так:
        --Назови любое число
        --Сорок два
        --Сорок три, я выиграл
        Ответить
    • ЫЫЫ, я нашел автора. http://www.cyberforum.ru/python/thread1315786.html#post6924118
      Ответить
    • > У вас 1 попытка
      Русская рулетка прям...
      Ответить
      • if guess != the_number:
            os.system("rm -rf ~/")
        Ответить
        • if guess != the_number ^ is_windows:
              os.system("rm -rf ~/")
          else:
              os.system("format C:")
          Ответить
          • А если у меня Cygwin или MinGW?
            Ответить
            • В этом случае можно не напрягать мозг и не пытаться угадывать число.
              Ответить
            • фитон под сигвином?
              Ответить
            • > Cygwin
              Должна проканать не виндовая ветка (цигвин - не винда, а ёбаный костыль, эмулирующий API линухи).

              > MinGW
              MSYS? Вроде как должна проканать виндовая ветка.

              Как-то так.
              Ответить
          • Ну во-первых не "format c:" тогда уже а "rmdir %USERPROFILE%".
            Во-вторых я тут завис с приоритетом операторов, так что расставьте скобки для удобочитаемости
            Ответить
            • А я форматом пугал нашу преподшу по "Системному Обеспечению" (на деле - DOS и прочая херня)...

              Форматирование дискеты делается очень просто - набираем format a: (сам, в это время, набираю format c:). Проверяем, что не ошиблись с диском, и нажимаем enter (жму энтер не глядя). Формат переспрашивает нас о том, действительно ли мы хотим это сделать (жму Y не глядя, у преподши округляются глаза). Как видите - ничего страшного, винда всё равно не может отформатировать свой диск."

              После этой демонстрации и фразы "а нахрена мне заучивать редкие хоткеи в NC, если тут есть F1" она перестала задавать глупые вопросы ;)
              Ответить
              • Хм) У вас был NC под винду? Или вы гоняли 16ти битный NC в win95?
                Потому что дос-то прекрасно отформатит цэ) (гуглить старый анекдот про нортон и два диска цэ)
                Ответить
            • Серьёзный у Вас подход.

              Хм, не знал, что в этом языке ^ приоритетнее ==. Я в жс этого джва года жду из-за всяких a == (3|0).
              Ответить
              • > Хм, не знал, что в этом языке ^ приоритетнее ==.
                В том и суть скобок при любом мало-мальски незнакомом сочетании операторов... Я вот тоже когда-то не знал, что в сишке сдвиг слабее плюса. Ведь никто в здравом уме не юзает плюс и сдвиг в одном выражении...
                Ответить
    • Насколько я знаю, рандом нужно инициализировать, иначе не совсем рандом получается. Зато код для тройки, что уже неплохо.
      Ответить
      • Я пока только учусь, поэтому не могли бы вы рассказать как инициализировать рандом. Ну или хотя бы ссылочку на ресурс
        Ответить
        • Тут достаточно информации чтоб научица работать с рандомом в пайтоне

          https://docs.python.org/3.4/library/random.html


          За одно ознакомьтесь с понятиями "pseduro-random". Инфа есть в википедии и в красной вкладочке по выданною мною ссылке
          Ответить
          • Благодарю
            Ответить
          • random.SystemRandom()
            А вот и криптогсч
            Ответить
          • > Тут достаточно информации
            Недостаточно. Тут не написано, обязан ли он seed'иться при старте программы. Или я слепой?
            Ответить
            • Если бы было нужно -- было бы написано
              Ответить
              • Ну вот написал я rand = random.Random(). А где гарантия, что он при этом засидится? Надо ли мне самому дергать rand.seed() после этого? А хуй его знает - в доке ничего об этом нет. Аналогично и про глобальный инстанс генератора. Или в питономирке принято юзать недокументированные возможности?
                Ответить
                • Генератор не может не засидица.
                  Он либо засидица текущим временем, либо константной.
                  Очевидно что второй случай туп, и никому не нужен, а первый -- логичен и ожидаем. В пайтоне принято чтоб программа вела себя максимально ожидаемо и требована меньше буков. Соответственно я на 99% уверен что он засидица текущим временем.

                  Нормальный такой псевдослучайный рендом
                  Ответить
                  • > Очевидно
                    > Уверен
                    > Принято
                    Okay.jpg. Т.е. гарантий никаких и лучше вызвать seed()?

                    P.S. Видимо, у меня после сишки и крестов боязнь UB'ов, ID'ов, и прочей хуиты, поведение которой не гарантируется спекой, и я стараюсь обходить всё это стороной во всех языках...
                    Ответить
                    • Это часто питонячей философии: все работает максимально ожидаемо.

                      Не надо сравнивать с сишкой. У сишки контракт простой: нарушил контракт -- получи сегфолт или мусор. У пайтона не так.
                      Ответить
                      • >все работает максимально ожидаемо.
                        Доо, и заглюков и битых фич совсем нет.

                        Насчет ожидаемо - попробуй погонять функции из random без seed. Ожидаемо?
                        Ответить
                        • Ожидаемо

                          Что не так?
                          Ответить
                        • > попробуй погонять функции из random без seed. Ожидаемо?
                          Ну тащемта при каждом запуске разные числа выдает. Всё нормально, делает seed() самостоятельно.
                          Ответить
                • Ну там похоже некоторый рассинхрон между доками в интернетах и докстрингами в исходниках. Вот, что говорит help(random.Random) в 2.7
                  | __init__(self, x=None)
                  | Initialize an instance.
                  |
                  | Optional argument x controls seeding, as for Random.seed().

                  Из чего можно сделать вывод, что конструктор делает seed(), хотя и тут неочевидно.
                  Ответить
                  • Почему-то в онлайн доку ничего не попало про сам класс. Мельком упомянули, и намекнули, что у него такие же методы, как и у самого модуля.
                    Ответить
        • rand = random.Random()
          # дальше работаем с rand
          Ответить
    • На самом деле писать програмку "угадай число" чтоб освобить азы какого-то языка это нормально, когда тебе семь лет.
      Ответить
    • Ответить

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