Форум сайта python.su
import numpy as np from scipy import integrate import matplotlib.pyplot as plt import datetime start = datetime.datetime.now() plt.rcParams['axes.grid'] = True XX=[None, 11.3, 14.8, 7.6, 10.5, 12.7, 3.9, 11.2, 5.4, 8.5, 5.0, 4.4, 7.3, 2.9, 5.7, 6.2, 7.3, 3.3, 4.2, 5.5, 4.2] I = [None,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20] N=20 # Задаем G-ю функцию которая включает в себя произведения плотностей вроятности # каждого независимого результата Xi в которых МО и СКО изменяются по линейной зависимости def G(M1, Mn, S1, Sn): def loc (M1, Mn, i, n): return (M1*(n-i)/(n-1)) + (Mn*(i-1)/(n-1)) def scale (S1, Sn, i, n): return (S1*(n-i)/(n-1)) + (Sn*(i-1)/(n-1)) def fnorm (x): return (np.exp((-x**2)/2))/(np.sqrt(2*np.pi)) def y (M1, Mn, S1, Sn, i, n, x): return (x-loc(M1,Mn,i,n))/scale(S1,Sn,i,n) def F (M1, Mn, S1, Sn, i, n, x): return (fnorm(y(M1, Mn, S1, Sn, i, n, x)))/scale(S1, Sn, i, n) # Распаковка значений x и i из глобальных переменных x = XX[1:] i = I[1:] n=N # Вычисляем значение функции F для каждого x и i values=[F(M1, Mn, S1, Sn, i_val, n, x_val) for i_val, x_val in zip(i, x)] # Вычисляем произведение всех значений result = np.prod(values) return result # находим сомножитель К для получения общей ПВ оценок options={'epsrel':1e-20, 'epsabs':1e-20} K, errorK = integrate.nquad(G, ranges=[[0, 30],[0, 10],[0, 10],[0, 10]], opts=[options, options, options, options]) # K = 2.9613332457351404e-18 errorK = 9.999171231431291e-21 # формируем ПВ оценок def pdf(Mn, S1, Sn, M1): return (G(M1, Mn, S1, Sn) / K) # строим график автономной ПВ оценок для параметра М1 (уменьшаем значения ошибок для оперативности) def pdf_m1 (M1): return [(integrate.tplquad(pdf, 0, 10, 0, 10, 0, 10, args=(m,), epsabs=0.1, epsrel=0.1)[0]) for m in M1] x = np.arange(4, 16, 0.2) plt.plot(x, pdf_m1(x), 'k', lw=3) plt.ylim(bottom=0) plt.title('Fm1(m1)') plt.show() # находим несмещенную оценку М1 и её ско sm1 (примерные значения по методу ММП М1 = 9.66) def F1 (M1): return integrate.tplquad(pdf, 0, 10, 0, 10, 0, 10, args=(M1,))[0] M1, _ = integrate.quad(lambda M1: M1 * F1(M1), 4, 16) print(M1) Dm1, _ = integrate.quad (lambda x: ((x-M1)**2) * F1(x), 4, 16) sm1 = np.sqrt(Dm1) print(sm1) print("Время вычисления М1 и СКОм1:", datetime.datetime.now()-start)
import sys def transformation(input): if len(input) == 0: return None cycle_list = sorted([input[i+1:]+input[:i+1] for i in range(len(input))]) output = "" for s in cycle_list: output += s[len(s)-1] return output if __name__ == '__main__': for line in sys.stdin: print(transformation(line[:-1]))
import sys def re_transformation(input): if len(input) == 0: return None re_cycle_list = ["" for s in input] while len(re_cycle_list[0]) < len(input): re_cycle_list = sorted([input[i]+re_cycle_list[i] for i in range(len(input))]) for s in re_cycle_list: if s[len(s)-1] == '|': return s if __name__ == '__main__': for line in sys.stdin: print(re_transformation(line[:-1]))
[code python]from ast import While
import json
import datetime as dt
import pyaudio
from vosk import Model, KaldiRecognizer
import pyttsx3
import os
import pygame
import time
from fuzzywuzzy import fuzz
import platform
import webbrowser
import subprocess
import sys
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
QMetaObject, QObject, QPoint, QRect,
QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
QFont, QFontDatabase, QGradient, QIcon,
QImage, QKeySequence, QLinearGradient, QPainter,
QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QApplication, QLineEdit, QMainWindow, QPushButton,
QSizePolicy, QStatusBar, QWidget)
class Ui_LoginWindow(object):
with open('commands.json', 'r') as file:
commands_data = json.load(file)
commands = commands_data.get('commands', [])
def setupUi(self, LoginWindow):
if not LoginWindow.objectName():
LoginWindow.setObjectName(u"LoginWindow")
LoginWindow.resize(480, 157)
LoginWindow.setMinimumSize(QSize(480, 157))
LoginWindow.setMaximumSize(QSize(480, 157))
icon = QIcon()
icon.addFile(u"1679059321_bogatyr-club-p-fioletovii-fon-kiberpank-foni-vkontakte-80.png", QSize(), QIcon.Normal, QIcon.Off)
LoginWindow.setWindowIcon(icon)
LoginWindow.setStyleSheet(u"background-color: rgb(1, 0, 31);")
self.centralwidget = QWidget(LoginWindow)
self.centralwidget.setObjectName(u"centralwidget")
self.LoginEnter = QPushButton(self.centralwidget)
self.LoginEnter.setObjectName(u"LoginEnter")
self.LoginEnter.setGeometry(QRect(290, 60, 161, 51))
self.LoginEnter.setStyleSheet(u"background-color: rgb(56, 56, 56);")
self.NoAccount = QPushButton(self.centralwidget)
self.NoAccount.setObjectName(u"NoAccount")
self.NoAccount.setGeometry(QRect(230, 0, 251, 34))
self.NoAccount.setStyleSheet(u"background-color: rgb(56, 56, 56);")
self.LoginLogin = QLineEdit(self.centralwidget)
self.LoginLogin.setObjectName(u"LoginLogin")
self.LoginLogin.setGeometry(QRect(20, 40, 221, 41))
self.LoginLogin.setStyleSheet(u"background-color: rgb(56, 56, 56);")
self.LoginPassword = QLineEdit(self.centralwidget)
self.LoginPassword.setObjectName(u"LoginPassword")
self.LoginPassword.setGeometry(QRect(20, 90, 221, 41))
self.LoginPassword.setStyleSheet(u"background-color: rgb(56, 56, 56);")
self.LoginPassword.setEchoMode(QLineEdit.Password)
LoginWindow.setCentralWidget(self.centralwidget)
self.statusbar = QStatusBar(LoginWindow)
self.statusbar.setObjectName(u"statusbar")
LoginWindow.setStatusBar(self.statusbar)
self.retranslateUi(LoginWindow)
self.LoginEnter.clicked.connect(self.login)
QMetaObject.connectSlotsByName(LoginWindow)
def login(self):
is_gosha_active = False
last_command_time = None
username = self.LoginLogin.text()
password = self.LoginPassword.text()
try:
with open('accounts.json') as accounts_file:
accounts = json.load(accounts_file)
except FileNotFoundError:
print("Файл 'accounts.json' не найден.")
return
except json.JSONDecodeError:
print("Ошибка декодирования JSON в файле 'accounts.json'.")
return
for account in accounts:
if account["username"] == username and account["password"] == password:
print("Вход выполнен!")
user_role = account['role']
if user_role == 'admin':
model = Model("vosk")
rec = KaldiRecognizer(model, 16000)
engine = pyttsx3.init()
p = pyaudio.PyAudio()
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[2].id)
user = os.getlogin()
now = dt.datetime.now()
stream = p.open(format=pyaudio.paInt16, channels=1, rate=16000, input=True, frames_per_buffer=8000)
stream.start_stream()
with open('commands.json', 'r') as file:
commands_data = json.load(file)
commands = commands_data.get('commands', [])
def close_current_window():
system = platform.system()
if system == "Windows":
os.system("taskkill /f /im explorer.exe")
elif system == "Linux":
os.system("xdotool key Alt+F4")
elif system == "Darwin":
os.system('osascript -e "tell application \\"System Events\\" to keystroke \\"w\\" using {command down}"')
def minimize_current_window():
system = platform.system()
if system == "Windows":
os.system("powershell -command $wshell = New-Object -ComObject wscript.shell; $wshell.SendKeys('% ')")
elif system == "Linux":
os.system("xdotool getactivewindow windowminimize")
elif system == "Darwin":
os.system('osascript -e "tell application \\"System Events\\" to keystroke \\"m\\" using {command down}"')
def listen():
while True:
data = stream.read(4000, exception_on_overflow=False)
if (rec.AcceptWaveform(data)) and (len(data) > 0):
answer = json.loads(rec.Result())
if answer['text']:
user_text = answer['text']
print("User said:", user_text)
yield user_text
def find_most_similar_command(text):
max_similarity = -1
closest_command = None
for command_data in commands:
activation_phrase = command_data.get('activation_phrase', '')
similarity = fuzz.token_set_ratio(text.lower(), activation_phrase.lower())
if similarity > max_similarity:
max_similarity = similarity
closest_command = command_data
return closest_command, max_similarity
def execute_command(command):
global is_gosha_active, Speak
closest_command, similarity = find_most_similar_command(command)
with open('commands.json', 'r') as file:
commands_data = json.load(file)
commands = commands_data.get('commands', [])
if similarity >= 80:
response = closest_command['response']
engine.say(response)
engine.runAndWait()
if closest_command.get('action') == "run_mom_code":
time.sleep(1)
subprocess.Popen(["python", "mom.py"])
if closest_command.get('action') == "time":
timeh = now.hour
timem = now.minute
engine.say(timeh)
engine.say('часов')
engine.say(timem)
engine.say("минут")
engine.runAndWait()
if closest_command.get('action') == "open_browser":
webbrowser.open("https://www.google.ru/")
if closest_command.get('action') == "open_youtube":
webbrowser.open("https://www.youtube.com/")
if closest_command.get('action') == "close_window":
close_current_window()
if closest_command.get('action') == "minimize_window":
minimize_current_window()
if closest_command.get('action') == "user":
engine.say(user)
engine.runAndWait()
else:
print("Команда не распознана.")
for text in listen():
current_time = now
with open('commands.json', 'r') as file:
commands_data = json.load(file)
commands = commands_data.get('commands', [])
if last_command_time and (current_time - last_command_time).seconds > 7:
is_gosha_active = False
if not is_gosha_active and commands[0]["activation_phrase"] in text.lower():
last_command_time = now
is_gosha_active = True
print("Активация ассистента.")
if commands:
engine.say(commands[0]["response"])
engine.runAndWait()
elif is_gosha_active:
last_command_time = now
if text.lower() == commands[4]["activation_phrase"]:
print("Деактивация ассистента.")
if len(commands) > 3:
engine.say(commands[4]["response"])
engine.runAndWait()
sys.exit(app.exec())
else:
execute_command(text.lower())
elif user_role == 'tester':
print('Не доступно для тестера')
elif user_role == 'user':
print('Не доступно для пользователя')
def retranslateUi(self, LoginWindow):
LoginWindow.setWindowTitle(QCoreApplication.translate("LoginWindow", u"\u0413\u043e\u043b\u043e\u0441\u043e\u0432\u043e\u0439 \u0410\u0441\u0441\u0438\u0441\u0442\u0435\u043d\u0442 \u0413\u043e\u0448\u0430(\u0412\u0445\u043e\u0434)", None))
self.LoginEnter.setText(QCoreApplication.translate("LoginWindow", u"\u0412\u043e\u0439\u0442\u0438", None))
self.NoAccount.setText(QCoreApplication.translate("LoginWindow", u"\u041d\u0435\u0442 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430? \u0417\u0430\u0440\u0435\u0433\u0435\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f.", None))
self.LoginLogin.setPlaceholderText(QCoreApplication.translate("LoginWindow", u"\u041b\u043e\u0433\u0438\u043d", None))
self.LoginPassword.setPlaceholderText(QCoreApplication.translate("LoginWindow", u"\u041f\u0430\u0440\u043e\u043b\u044c", None))
class LoginWindow(QMainWindow):
def __init__(self):
super(LoginWindow, self).__init__()
self.ui = Ui_LoginWindow()
self.ui.setupUi(self)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = LoginWindow()
window.show()
sys.exit(app.exec())[/code]
{
"commands": [
{
"name": "гоша",
"activation_phrase": "гоша",
"response": "Слушаю"
},
{
"name": "привет",
"activation_phrase": "привет",
"response": "Приветствую вас!"
},
{
"name": "как дела",
"activation_phrase": "как дела",
"response": "У меня всё отлично, спасибо!"
},
{
"name": "время",
"activation_phrase": "время",
"response": "Текущее время:",
"action": "time"
},
{
"name": "пока",
"activation_phrase": "пока",
"response": "До свидания!"
},
{
"name": "пользователь",
"activation_phrase": "пользователь",
"response": "Сейчас в системе:",
"action": "user"
},
{
"name": "открой браузер",
"activation_phrase": "открой браузер",
"response": "Открываю браузер",
"action": "open_browser"
},
{
"name": "открой ютуб",
"activation_phrase": "открой ютуб",
"response": "Открываю Ютуб",
"action": "open_youtube"
},
{
"name": "др",
"activation_phrase": "поздравь мою маму",
"response": "Поздравляю вашу маму с днем рождения",
"action": "run_mom_code"
},
{
"name": "молодец",
"activation_phrase": "ты молодец",
"response": "Спасибо"
},
{
"name": "закрой текущее окно",
"activation_phrase": "закрой текущее окно",
"response": "Закрываю текущее окно",
"action": "close_window"
},
{
"name": "сверни",
"activation_phrase": "сверни текущее окно",
"response": "Сворачиваю текущее окно",
"action": "minimize_window"
},
{
"activation_phrase": "посчитай",
"response": "Хорошо, давай посчитаем.",
"action": "calculate"
}
]
}
[
{"username": "admin", "password": "admin", "role": "admin"},
{"username": "tester", "password": "tester", "role": "tester"},
{"username": "gosha", "password": "gosha", "role": "user"}
]
img_logo = ImageTk.PhotoImage(Image.open("img/logo.png")) c = tk.Canvas(self, width=450, height=300) c.create_image(50, 50, image = img_logo) c.pack(anchor="center", expand=1)
img_logo = ImageTk.PhotoImage(Image.open("img/logo.png")) L= tk.Label(self, image = img_logo) L.image = img_logo L.pack(anchor="center", expand=1)
import telebot import sqlite3 from telebot import types token = "" bot = telebot.TeleBot(token=token) admins = 11111111 conn = sqlite3.connect('kofetoria.db', check_same_thread=False) cursor = conn.cursor() def db_table_val(user_id: int, username: str): cursor.execute('INSERT OR IGNORE INTO test (user_id, username) VALUES (?, ?)', (user_id, username)) conn.commit() @bot.message_handler(commands=["start"]) def repeat_all_messages(message): # создаем клавиатуру keyboard = types.InlineKeyboardMarkup() # добавляем на нее две кнопки button1 = types.InlineKeyboardButton(text="сделать заказ", callback_data="button1") keyboard.add(button1) if message.chat.id == admins: button2 = types.InlineKeyboardButton(text="помощь для бариста", callback_data="button2") keyboard.add(button2) # отправляем сообщение пользователю bot.send_message(message.chat.id, "Нажмите кнопку!", reply_markup=keyboard) us_id = message.from_user.id #adm = message.from_user.admin username = message.from_user.username db_table_val(user_id=us_id, username=username) # функция запустится, когда пользователь нажмет на кнопку @bot.callback_query_handler(func=lambda call: True) def callback_inline(call): if call.message: if call.data == "button1": bot.send_message(call.message.chat.id, "В разработке") #@bot.callback_query_handler(func=lambda call: True) #def callback_inline(call): if call.data == "button2": keyboard = types.InlineKeyboardMarkup() button2 = types.InlineKeyboardButton(text="huy", callback_data="button2") keyboard.add(button2) bot.send_message(call.message.chat.id, "Вы нажали на вторую кнопку.") bot.polling(none_stop=True)
class GostTable(tables.Table): class Meta: model = Gost template_name = "django_tables2/bootstrap.html" fields = ('name', 'short_name')
<form action="/upload" method="post" enctype="multipart/form-data"> <label for="pdfformmail{{indexfile}}">Загрузить</label> <input enctype type="file" onChange=selectFile(this) name="pdfformmail" id="pdfformmail{{indexfile}}"> </form>
from fastapi import FastAPI, Request,UploadFile, File import webbrowser ..... @app.post("/upload") def upload_file(file: UploadFile): return file
RuntimeError: Form data requires “python-multipart” to be installed.
You can install “python-multipart” with:
pip install python-multipart
……
pydantic_core 2.6.3
pyinstaller 6.0.0
pyinstaller-hooks-contrib 2023.9
python-multipart 0.0.6
setuptools 68.2.2
sniffio 1.3.0
starlette 0.27.0
…….