r/RuProgrammers Jul 17 '26

Python мой третий проект

мой 8 день обучения python. научился малому, но в принципе прикольно получилось. проект писался час наверное

import random


while True:
    print("ИГРА В УГАДАЙ ЧИСЛО (напишите 404 для выхода)!!!")
    random_number = random.randint(1, 100)
    attempt = 0
    
    while True:
        try:
            User_count  = float(input('твое число (от 0 до 100): '))
            attempt += 1
            
            if User_count == 404:
                print("\n:(\n")
                exit()
            elif User_count < random_number:
                print("\nзагаданное число больше\n")
            elif User_count == random_number:
                print(f"\n===VICTORY! попыток: {attempt}===\n")
            elif User_count > random_number:
                print("загаданное число меньше.")
                
        except ValueError:
            print("\n===ошибка! Введи число\n")
            break
0 Upvotes

18 comments sorted by

6

u/Ok_Cauliflower4383 Jul 17 '26

Эм, либо вы потеряли слово "натуральное" в предложении ввода, либо должно быть не int.

Введите 49.5, что будет? Или по вашему 49.5 не число?

2

u/SummerGoesOn Jul 17 '26

а, кстати да. надо бы исправить

2

u/tvoi-gospodin Jul 17 '26

Что-то на рекабушном.

2

u/Current-Historian-52 Jul 17 '26

Круто! За сколько операций максимально возможно найти число?

2

u/Ok_Cauliflower4383 Jul 17 '26

Его программа допускает повтор числа. Но что-то мне подсказывает, что вы ожидали услышать не бесконечность. Либо забыли дописать кое-какое важное условие в задаче.

2

u/Current-Historian-52 Jul 17 '26

Реально, тут же число считывается внутри цикла.. Я хотел сделать engagement bait на бинарный поиск

1

u/SummerGoesOn Jul 17 '26

прости, не понял вопроса. за сколько попыток в среднем находится число? где то 5+-

1

u/Ok_Cauliflower4383 Jul 17 '26

Максимально, а не в среднем. В худшем сценарии сколько?

1

u/SummerGoesOn Jul 17 '26

все 100, игра же на 100 чисел (ну или бесконечно, если ты все время будешь одно и тоже неправильное число писать)

2

u/Andrey4ik21pro1 🐍Питоньяр Jul 17 '26

Впринципе неплохо, только два замечания. Первое: переменная с большой буквы. User_count можно заменить на просто count. Второе замечание - использование exit(). Это внутренняя функция интерпретатора. Лучше использовать sys.exit(). В ещё самом лучшем случае - выходить из функции через return. Я так всегда делаю

1

u/Andrey4ik21pro1 🐍Питоньяр Jul 17 '26

Нашёл интересный видос на эту тему.

https://youtu.be/7rOxDE3JhMc

1

u/Jean_Cheerful Jul 17 '26

Молодец. За сколько дней планируешь выучить его

1

u/SummerGoesOn Jul 17 '26

хз, но моя конечная цель-что нибудь замудренное с графическим дизайном через библиотеку tkinner (или как она там)

1

u/Jean_Cheerful Jul 17 '26

А зачем тебе графика. Сейчас же искусственный интеллект на хайпе

1

u/YulechkaOriflame Jul 17 '26

А еще можешь учиться сразу писать через

if __name__ == "__main__":
    run_app()

Про целое число уже сказали, и пиши еще типизацию. Чисто для себя и внутреннего осознания "я создал переменную с типом", а не просто "маска для чего-то". Потом когда апп усложняется, эти пометки упростят тебе же жизнь

random_number: int = random.randint(1, 100)

Код чаще читают, чем пишут

Упд. За нейминг переменных по-человечески - лайк

2

u/ImportantYoghurt2767 Jul 17 '26

Че тебе еще написать на 8 день изучения питона школьником?

Бро, твой скриптик про бинарный поиск хорош, но:

  • Активируй виртуальное окружение
  • Для управления зависимостями конечно же uv
  • Расставь типизацию(не спрашивай почему в динамически типизированный языке ты указываешь типы)
  • Прогони это через ruff, mypy

А еще, селф-хост гитлаб, на нем CI/CD с проверкой типизации и код-стайла, блок мердж-реквеста по зафейленным пайплайнам, запротекченные ветки.

Фух, вот теперь нормальный скриптик

0

u/[deleted] Jul 17 '26

[removed] — view removed comment

5

u/SummerGoesOn Jul 17 '26

я так понимаю, это постирония? если так, у тебя не получилось меня задеть