С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 07.02.2019
Сообщений: 3

Проблема с выполнением функций

07.02.2019, 16:07. Показов 1071. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, мне нужна помощь.
Я пишу программу и вот ее фрагмент:

Python
1
2
3
4
5
6
7
8
9
def play_music(zadanie):
    if 'поставь музыку' in zadanie:
        talk("хорошо")
        subprocess.Popen("c:/Program Files (x86)/AIMP/AIMP.exe")
 
def open_my_documents(zadanie):
    if 'открой мои документы' in zadanie:
        talk("хорошо")
        subprocess.Popen('explorer "d:/"')
Сперва даю команду "поставь музыку", открывает плеер. Потом даю команду "открой мои документы", открывает
как надо. Проблема в том что, если я сперва даю вторую команду открыть мои документы, то ничего не выполняет.
Для того, чтобы добиться выполнения второй команды нужно сначала обязательно добиться выполнения первой команды.
Как можно сделать так чтобы программа выполняла ту команду, которую даю без соблюдения последовательности?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.02.2019, 16:07
Ответы с готовыми решениями:

Задача по игре в города, проблема с бесконечным выполнением
Необходимо решить задачу по "игре в города", т.е входные данные это слова на латинице, например, "aab", "aac",...

Проблема с выполнением python скрипта вне IDE
всем привет. тыкаю тут на досуге пайтон. нарукоблудил такой код: import json import io js = json.load(file('file.json',...

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

4
 Аватар для Semen-Semenich
5220 / 3468 / 1172
Регистрация: 21.03.2016
Сообщений: 8,294
07.02.2019, 18:01
совсем ничего не понятно. как и при каких условиях вызывается каждая функция?
откуда даются команды и какой функции? если команда "открой мои документы" вызывает первую функцию то явно ничего не получиться.
0
0 / 0 / 0
Регистрация: 07.02.2019
Сообщений: 3
07.02.2019, 19:01  [ТС]
Команды даются с микрофона. Условные операторы и сами операнды видны в коде что я выставил. У каждой функции есть своя фраза после которой вызывается сама функция. Но проблема в том что чтобы вызвать (например) третью функцию нужно воспользоваться и вторым и третьими функциями. Практически это выглядит так:
1. Запускаю программу
2. Произношу "Открой видеоплеер" - в консоли пишет "хорошо" и открывает.
3. Произношу "Открой видео сайт" - в консоли пишет "уже открываю" и открывает веб сайт который я задал по умолчанию.
4. Произношу "Поставь музыку" - в консоли пишет "хорошо" и запускает AIMP (муз.плеер).
(Все 3 функции которые я перечислил выше записаны именно в этом порядке. Программа еще не развитая и поэтому в ней всего лишь 4 функции. Первые 3 я перечислил выше, а последние 2 выставлены в теме)
Но если я делаю так:
1. Запускаю программу
2. Произношу "открой видео сайт" - в консоли пишет "уже открываю" но ничего не делает.
С остальными 2 последними функциями так же. Чтобы вызвать их нужно вызывать по порядку. Не знаете ли такого способа чтобы в распознающей системе если нет фразы первой функции она не пропускала выполнение команды, а сверяла есть ли эта фраза в следующей функции? То есть переходила ко второй функции?
0
 Аватар для Semen-Semenich
5220 / 3468 / 1172
Регистрация: 21.03.2016
Сообщений: 8,294
07.02.2019, 19:17
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def play_music():
        talk("хорошо")
        subprocess.Popen("c:/Program Files (x86)/AIMP/AIMP.exe")
 
def open_my_documents():
        talk("хорошо")
        subprocess.Popen('explorer "d:/"')
 
def er_fun():
    print('нет комманды!')
 
zadanie = 'это должен быть список комманд'
 
if 'поставь музыку' in zadanie:
    play_music():
elif 'открой мои документы' in zadanie:
    open_my_documents():
else:
    er_fun()
1
0 / 0 / 0
Регистрация: 07.02.2019
Сообщений: 3
10.02.2019, 15:09  [ТС]
Нет, ничего не сработало. Может это потому что вы не видели всего кода. Весь код состоит так:
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import speech_recognition as sr
import os
import sys
import webbrowser
import pyttsx3
import cmd
import subprocess
 
def talk(words):
    engine = pyttsx3.init()
    engine.say(words)
    engine.runAndWait()
 
talk("Здравствуйте, чем могу помочь?")
 
def command():
    r = sr.Recognizer()
 
    with sr.Microphone() as source:
        print("talk")
        r.pause_threshold = 1
        r.adjust_for_ambient_noise(source, duration=0)
        audio = r.listen(source)
 
    try:
        zadanie = r.recognize_google(audio, language="ru-RU").lower()
        print("You said: " + zadanie)
    except sr.UnknownValueError:
        talk("Я не понимаю вас")
        zadanie = command()
 
    return zadanie
 
def video_player(zadanie):
    if 'открой видеоплеер' in zadanie:
        talk("хорошо")
        subprocess.Popen("c:/Program Files/DAUM/PotPlayer/PotPlayerMini64.exe")
 
def video_site(zadanie):
    if 'открой видео сайт' or 'хочу скачать видео' in zadanie:
        talk("уже открываю")
        url_video = 'dika.to'
        webbrowser.open(url_video)
 
def play_music(zadanie):
    if 'поставь музыку' in zadanie:
        talk("хорошо")
        subprocess.Popen("c:/Program Files (x86)/AIMP/AIMP.exe")
 
def open_my_documents(zadanie):
    if 'открой мои документы' in zadanie:
        talk("хорошо")
        subprocess.Popen('explorer "d:/"')
 
while True:
    video_player(command())
    video_site(command())
    play_music(command())
    open_my_documents(command())
Что нужно изменить чтоб все выполнялось точно так как я описывал ранее?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.02.2019, 15:09
Помогаю со студенческими работами здесь

Таймаут между выполнением функций в php
Всем привет! Подскажите как можно установить таймаут между выполнением функций. Вот пример, между выполнением этих двух функций нужно...

Проблема с выполнением
TMaskEdit* MaskEdit = { MaskEdit1, MaskEdit2, MaskEdit3, MaskEdit4, MaskEdit5, MaskEdit6, MaskEdit7,...

Проблема с выполнением
Учусь в техникуме. Работая на паре - все работает, но дома, код не хочет выполнятся после введения строки с чем это связано? На всякий...

Создание файла (программа, с выполнением доп.функций)
Создать файл, содержащий сведения о сдаче студентами сессии. Каждая запись содержит поля: номер группы, фамилия, имя, отчество студента,...

Проблема с выполнением потока
Доброго времени суток, уважаемые! Подскажите, почему не работает в цикле новый поток. List<string> Strs = new List<string>...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru