0 / 0 / 0
Регистрация: 17.03.2021
Сообщений: 8

Как оптимизировать код?

26.12.2021, 20:20. Показов 566. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне нужно чтобы при нажатии определённой клавиши, проигрывалась определённая аудио-запись. Сейчас мой код выглядит топорно, работает медленно и нагружает систему, может кто помочь его оптимизировать?

Код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import keyboard as kb
import soundfile as sf
import soundcard as sc
 
while 1 != 2:
    if kb.is_pressed('f'):
        default_speaker = sc.default_speaker()
        samples, samplerate = sf.read('Sounds\Agressive_A.wav')
        default_speaker.play(samples, samplerate=samplerate)
    if kb.is_pressed(','):
        default_speaker = sc.default_speaker()
        samples, samplerate = sf.read('Sounds\Agressive_B.wav')
        default_speaker.play(samples, samplerate=samplerate)
    if kb.is_pressed('d'):
        default_speaker = sc.default_speaker()
        samples, samplerate = sf.read('Sounds\Agressive_V.wav')
        default_speaker.play(samples, samplerate=samplerate)
    if kb.is_pressed('u'):
        default_speaker = sc.default_speaker()
        samples, samplerate = sf.read('Sounds\Agressive_G.wav')
        default_speaker.play(samples, samplerate=samplerate)
    if kb.is_pressed('l'):
        default_speaker = sc.default_speaker()
        samples, samplerate = sf.read('Sounds\Agressive_D.wav')
        default_speaker.play(samples, samplerate=samplerate)
    if kb.is_pressed('t'):
        default_speaker = sc.default_speaker()
        samples, samplerate = sf.read('Sounds\Agressive_E.wav')
        default_speaker.play(samples, samplerate=samplerate)
    if kb.is_pressed('`'):
        default_speaker = sc.default_speaker()
        samples, samplerate = sf.read('Sounds\Agressive_EO.wav')
        default_speaker.play(samples, samplerate=samplerate)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.12.2021, 20:20
Ответы с готовыми решениями:

Как ускорить код? Оптимизировать?
Задача: Определите количество целочисленных точек, находящихся внутри и на границе круга радиуса r с центром в начале координат. ...

Подскажите пожалуйста, как оптимизировать код
Я в данный момент учусь самостоятельно Python. Новичок. Поэтому и вопрос наверняка глупейший. Но в процессе обучения без этого никуда. ...

Решение не заходит по времени на одном из тестов. Как оптимизировать мой код?
K. Сумма квадратов ограничение по времени на тест1 секунда ограничение по памяти на тест256 мегабайт вводстандартный ввод ...

3
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,691
Записей в блоге: 29
26.12.2021, 20:28
Цитата Сообщение от Flamey Посмотреть сообщение
while 1 != 2:
не выдумывай фигню, пиши как все while True

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
while True:
    if kb.is_pressed('f'):
        letter = 'A'
    if kb.is_pressed(','):
        letter = 'B'
    if kb.is_pressed('d'):
        letter = 'V'
    if kb.is_pressed('u'):
        letter = 'G'
    if kb.is_pressed('l'):
        letter = 'D'
    if kb.is_pressed('t'):
        letter = 'E'
    if kb.is_pressed('`'):
        letter = 'EO'
    default_speaker = sc.default_speaker()
    samples, samplerate = sf.read(f'Sounds\Agressive_{letter}.wav')
    default_speaker.play(samples, samplerate=samplerate)
0
0 / 0 / 0
Регистрация: 17.03.2021
Сообщений: 8
26.12.2021, 20:32  [ТС]
Это конечно хорошо, но куча последовательных if сильно замедляет код.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,691
Записей в блоге: 29
26.12.2021, 20:33
Flamey, каким образом ифы замедляют код? это воспроизведение звука его замедляет.
ну сделай словарь, где ключ это нажатый символ а значение - буква в названии музыки. При нажатии ищем по ключу и вопсроизводим звук.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.12.2021, 20:33
Помогаю со студенческими работами здесь

Оптимизировать код
вот сам код n = int(input()) chisla = kol = int(input()); for i in range(kol): zad = if (len(zad) == 2): ...

Как можно оптимизировать код? Код считывает кол-во скобок
s = input() s = cheked = set() ans = 0 L = len(s) for l in range(L+1 if L % 2 else L, 1, -2): for i in range(L-l+1): ...

Как можно максимально оптимизировать данный код через логическое индексирование? Код полностью работает
header = data = , , , , , , , , , , , , ] import numpy as np def salary_info_purchased(data, gender=None, purchased=None): ...

Как оптимизировать код
мне нужно найти количество натуральных делителей числа, с ограничением в 1 с. мой код чуть-чуть выходит за рамки этого ограничения, как...

Как оптимизировать код?
Школьнику Васе на лето учитель по литературе задал прочитать много художественных произведений. Как хороший ученик, Вася сходил в школьную...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru