Ответы пользователя по тегу Python
  • Как загрузить изображение на Postimages через Python или JS?

    @ddgryaz
    Можно отправить пост-запрос с изображением, если питон то requests . Если JS, то - axios
    Ответ написан
  • Почему код не работает правильно?

    @ddgryaz
    Реализацию рестарта нужно добавить в тело игры, т.е. в функцию convert в вашем случае. Я бы сделал следующим образом:
    player_v = input('Если да то нажмите (y) если нет нажмите (n)')
    if player_v == y:
        convert()
    else:
        print('Игра окончена')

    Особо в код не вчитывался, но мимолетно заметил что вы ведете счет игры, если это действительно так, то стоит обнулять его сразу после проигрыша и перед рестартом, чтобы новая игра не началась с уже имеющимся счетом.

    UPD: Плюс, в вашем случае условный игрок не успеет увидеть надпись о том, что игра закончится - так как программа сразу завершит работу. Последней строкой кода запишите пустой input. Это позволит вывести надпись о конце игры и не закрыться программе моментально.

    UPD2: Если мне удалось помочь вам с вашей проблемой, будьте добры выберите мой ответ как решение! Спасибо и удачи!
    Ответ написан
    Комментировать
  • В чем разница между кодом написанным руками и кодом вставленным?

    @ddgryaz Автор вопроса
    Я допустил ошибку в 14 строке. И проверяя 100 раз - не заметил ее. Как только опубликовал вопрос - сразу заметил :(
    Вопрос собственно решился. Прошу прощения и всем хорошего настроения! ;)
    Ответ написан
    Комментировать
  • Как заставить playsound воспроизводить музыку, после создания .exe программы?

    @ddgryaz Автор вопроса
    Решение найдено здесь.
    Оптимизировано для моего примера:
    def resource_path(relative_path):
        if hasattr(sys, '_MEIPASS'):
            return os.path.join(sys._MEIPASS, relative_path)
        return os.path.join(os.path.abspath("."), relative_path)
    
    playsound(resource_path('loseround.mp3'))

    Звуковые файлы должны лежать в каталоге с исполняемым скриптом .py
    Далее в терминале собрать программу с помощью Pyinstaller:
    pyinstaller -F --add-data "D:/PythonProject/111/music/loseround.mp3;."  --icon=icon.ico main.py


    Далее я создал инсталлятор, где есть файл .exe и mp3 файлы. Программа работает без ошибок на любой другой машине.
    Вопрос решен.
    Ответ написан
  • Как добавить .py файлу иконку?

    @ddgryaz
    Используйте pyinstaller для компиляции!
    В окно терминала:
    pyinstaller --onefile --icon=icon.ico main.py
    onefile если вам нужен только .exe
    Вместо icon.ico путь к вашей заранее выбранной иконке!
    Ответ написан
    Комментировать
  • Как повторно работать с pyglet, после использования многопоточности? Как завершить/очистить запущенные потоки?

    @ddgryaz Автор вопроса
    Я нашел решение моего вопроса, и таилось оно в самом начале. Я невероятно и злобно удивлен, что все оказалось так просто. Ведь изначально я искал, как соорудить такую конструкцию, чтобы и текст печатался и звук воспроизводился, читал про pyglet, pygame, GStreamer и кучу разных вариантов. В итоге к pyglet'у добавилось threading - многопоточность. Все сильно усложнилось, продолжая искать решение своего вопроса, а как оказалось еще и невероятное упрощение, я наткнулся на playsound.
    В итоге
    вместо кода который вы видите в вопросе

    import time
    import threading
    import pyglet
    from colorama import init
    from colorama import Fore, Back, Style
    
    def WelcomePrintMashin():
        for introductions in introduction:
            time.sleep(0.05)
            print(Fore.CYAN + introductions, end="", flush=True)
    def WelcomMusic():
        WelcomeSong = pyglet.media.load('music/welcom11.mp3')
        WelcomeSong.play()
        pyglet.app.run()
    
    def play1():
        while time.time() <= start_time:
            pass
        threading.Thread(target=WelcomMusic()).start()
    def play2():
        while time.time() <= start_time:
            pass
        threading.Thread(target=WelcomePrintMashin()).start()
    start_time=time.time()+1
    threading.Thread(target=play1).start()
    threading.Thread(target=play2).start()</spoiler>

    я использовал playsound:
    from playsound import *
    import time
    
    def MusicPrintMashin():
        playsound('D:/PythonProject/welcom.mp3', block=False)
        for introductions in introduction:
            time.sleep(0.05)
            print(introductions, end="", flush=True)

    Требуется один аргумент - путь к файлу со звуком, который вы хотите воспроизвести. Это может быть локальный файл или URL-адрес.
    Существует необязательный второй аргумент block, для которого по умолчанию установлено значение True. Если установить значение False, функция будет работать асинхронно.
    Это мне и нужно было! В общем я еще не определился что мне делать, радоваться что я разобрался как решить мою задачу, или улыбчиво злиться, что я потратил кучу времени чтобы разобраться с многопоточностью - threading.
    Надеюсь будет кому полезно!
    Ответ написан
    Комментировать