Уведомления

Группа в Telegram: @pythonsu

Уведомления

  • Found 3468 posts.

Флейм » Инновационный дизайн, тонкая полировка. » Апрель 12, 2024 11:24:41

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

Флейм » [b]Сообщения о багах и отзывы PyOS[/b] » Апрель 10, 2024 20:45:47

Тут вы можете оставлять свои отзывы, баг-репорты и идеи
Скачать PyOS или просто посмотреть тему ( хотя не понимаю, зачем второе без первого )
можно тут
P.S. Не стесняйтесь писать о багах, я все замечу и исправлю
P.S.S. Пишите баг-репорты и прочее что я упоминал в этой теме, то есть там:

| |
| |
__| |__
\ /
\ /
\ /
(это чудо, кстати, стрелка которую я вам рисовал но из-за выравнивания она сломалась! )

Python для экспертов » Интегрирование (n-го порядка) сложных функций (библиотека scipy) » Март 11, 2024 17:04:25

Приветствую всех формучан. ПРОБЛЕМА В ОПЕРАТИВНОСТИ, ну уж ооооочень долго выполняется код, до 15 часов доходило. Задача почти вся основана на интегрировании функций. В примере рассмотрено интегрирование для 1 переменной, вычисления её оценки. Так необходимо проинтегрировать для каждой переменной, которые заданы в pdf.
Для более быстрого построения графика снизил точность, просто чтобы форму функции видно было.
Но для оценки точность важна! Поэтому что можно сделать для повышения оперативности выполнения кода без потери точности интегрирования. Может что то упростить, изменить, либо другими библиотеками воспользоваться. Или вообще психануть и уйти на C++ код писать.
Заранее благодарен всем неравнодушным за оказанную помощь!!!
Пользуюсь IDE Spyder.

 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)

Python для экспертов » Библиотеки python » Март 8, 2024 18:16:44

Приветствую. Расскажите про свой опыт написания библиотек на python. Советы ошибки и тому подобное. Планирую написать свою библиотеку, но пока думаю насчет идеи (было бы славно если б накидали идей). Заранее спасибо.

Python для новичков » Библиотеки python » Март 8, 2024 15:45:56

Приветствую. Расскажите про свой опыт написания библиотек на python. Советы ошибки и тому подобное. Планирую написать свою библиотеку, но пока думаю насчет идеи (было бы славно если б накидали идей). Заранее спасибо.

Центр помощи » Реализация обратного преобразования Барроуза-Уилера » Март 7, 2024 12:00:44

Задача звучит следующим образом:
Преобразование Барроуза-Уилера выполняется в три этапа:
1. Составляется таблица всех циклических сдвигов входной строки.
2. Производится лексикографическая (в алфавитном порядке) сортировка строк таблицы. Лексикографическая сортировка происходит в соответствии с кодировкой Unicode.
3. В качестве выходной строки выбирается последний столбец таблицы преобразования и номер строки, совпадающей с исходной.
Напишите программу, которая делает обратное преобразование Алгоритма Барроуза-Уилера. Алгоритм заключается в разбиении входной строки (уже преобразованной алгоритмом) на последовательность символов, которые записываюся в столбик (добавление 1). Образованные строки лексикографически (unicod) сортируются (сортировка 1), а после к полученному добавляют слева символы из добавления 1 (добавление 2). Снова сортируют, продолжая таким образом, пока количество символов в полученных строках не станет равным количеству символов во входной строке. При любом добавлении добавляем символы из первого столбца. В конце образуется столбец, где искомая строка это строка c символом конца строки ‘|’.
**Входные данные:** строка, зашифрованная алгоритмом Барроуза-Уилера, длиной до 100 символов
**Пример входных данных:** |_deipPPier
**Выходные данные:** расшифрованная строка
**Пример выходных данных:** Pied_Piper|

С приведенным выше примером у меня все работает. Но если входная строка “BNNZAA|Aier”, то выводит “|ZBANANAer|”, что неправильно, потому что пропала “i”. Путем вывода промежуточных результатов и решения вручную я поняла, что это происходит из-за того, что порядок буквы “i” в столбце дополнения совпадает с её порядком в отсортированном столбце. То есть одна из строк получившейся матрицы “iiiiiiiiiii”, что выбрасывает её.

Подскажите, пожалуйста, как это можно пофиксить. У меня в коде может ошибка или это алгоритм нуждается в доработке?
Прямой код (вроде работает правильно):
 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]))

Python для экспертов » discord.py bot » Март 6, 2024 11:24:13

я пытался сделать кнопки. но при нажатии на кнопку пишет ошибка взаимодействия. не подскажите как пофксить
@bot.command()
async def tovar(ctx: Context):
fortnite = Button(label=“Fortnite”, emoji='<:fortnite:1214622080247795823>' )
discord_button = Button(label=“Discord”, emoji='<:discord:1214651087618048091>' )
twitch = Button(label=“Twitch”, emoji='<:twitch:1214651578556874843>' )
faceit = Button(label=“Faceit”, emoji='<:faceit:1214651548194447490>' )

async def fortniteCallback(interaction: discord.Interaction):
await interaction.response.send_message(“Выберите интересующую вас категорию и воспользуйтесь \n**интерактивной кнопкой**, чтобы ознакомиться с информацией о \nтоварах.\n\nНиже вы можете ознакомиться с категориями товаров из игры **Fortnite**”)

buttonManager = View()
buttonManager.add_item(fortnite)
buttonManager.add_item(discord_button)
buttonManager.add_item(twitch)
buttonManager.add_item(faceit)

Python проекты » Голосовой ассистент не реагирует на команды, но ошибок нет » Март 1, 2024 23:26:36

Сделал своего голосового ассистента, все работало исправно до перехода на Windows(Я сидел на Linux). При произнесении имени ассистента он показывает что услышал User said: имя, но на команду никак не реагирует, ошибки так же нет. Вот сам код:
[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]
Json файлы:
Commands:
{
"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"
}
]
}
Accounts:
[
{"username": "admin", "password": "admin", "role": "admin"},
{"username": "tester", "password": "tester", "role": "tester"},
{"username": "gosha", "password": "gosha", "role": "user"}
]

Центр помощи » Помочь с реструктуризацией моего приложения » Фев. 19, 2024 18:27:11

Я написал приложение, которое удовлетворяет некоторые мои нужды по работе. Я не опытен в коммерческом написании приложений. Если кто-то опытный мог бы дать хорошую обратную связь, и предложить как правильно было бы организовать файлы и модули и классы и функции в моем приложении, я был бы очень благодарен.
В своем приложении я использую простые библиотеки: tkinter, sqllite3, pandas, openpyxl

Python для экспертов » Шаблоны приложений FastAPI, Flask, Django + React, Next, Vue.  » Фев. 15, 2024 20:51:32

Есть идея создать для себя шаблоны приложений с хорошей архитектурой готовыми для деплоя.
Маркетплейс, блог, визитка, соцсеть, телеграмбот и т.п.
В разных вариантах FastAPI, Flask, Django + React, Next, Vue.
Может кто-то может поделится ссылкой на гитхаб понравившимся решением?
Я искал может плохо, но чтоб огонь не нашел, что-то использую.
Есть пара своих наработок маркетплейс FastAPI + React, спотифай Nest+Next и телеграмбот.
Может кто-то захочет присоединиться к разработке и использовать в своих целях.

Центр помощи » Задача на переливания (не простая) » Фев. 5, 2024 20:36:16

Есть два сосуда, первый объемом A литров, второй объемом B литров, а также кран с водой. Они могут выполнять следующие операции:

Наполнить сосуд A (обозначается >A).
Наполнить сосуд B (обозначается >B).
Вылить воду из сосуда A (обозначается A>).
Вылить воду из сосуда B (обозначается B>).
Перелить воду из сосуда A в сосуд B (обозначается как A>B).
Перелить воду из сосуда B в сосуд A (обозначается как B>A).
Команда переливания из одного сосуда в другой приводят к тому, что либо первый сосуд полностью опустошается, либо второй сосуд полностью наполняется.

Входные данные

Программа получает на вход три натуральных числа A, B, N, не превосходящих 10**4.

Выходные данные

Необходимо вывести алгоритм действий, который позволяет получить в точности N литров в одном из сосудов, если же такого алгоритма не существует, то программа должна вывести текст Impossible.

Количество операций в алгоритме не должно превышать 10**5. Гарантируется, что если задача имеет решение, то есть решение, которое содержит не более, чем 10**5 операций.

Примеры

входные данные

3
5
1
выходные данные

>A
A>B
>A
A>B
входные данные

3
5
6
выходные данные

Impossible

Python для новичков » Вопрос по PhotoImage » Янв. 27, 2024 08:54:14

Подскажите
- в 1 примере я вывожу картинку на канву (не работает)
- во втором на метку (работает)

  
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)
    

Вопрос такой: почему не работает вывод картинки на канву, что я делаю не так?
(c.create_text (50, 50, text=“Some Text…”, fill=“red”) - текст выводит нормально просто для примера)

заранее спасибо)

Python для новичков » Многострочные заголовки для таблицы » Янв. 25, 2024 13:54:20

Здравствуйте, подскажите можно ли создать многострочный заголовок для таблицы, я использую tk Treeview, хотел бы объединить некоторые заголовки столбцов по типу:
картинка в облаке маил ру
или куда копать
заранее спасибо

Центр помощи » Создание папки работа с файлами через блакнот ,что делать ??? » Янв. 16, 2024 19:56:00

Создать папку с названием Работа с файлами.

2. В этой папке с помощью программы Блокнот создать текстовый файл с названием: Qaz.txt.

3. При помощи Python создать файл с названием Work1.py.

ЭТИ ДВА ФАЙЛА ДОЛЖНЫ НАХОДИТЬСЯ В ОДНОЙ ПАПКЕ С НАЗВАНИЕМ Работа с файлами.

4. Далее набрать текст в файле Work1.py

f open ('Qaz.txt', ‘r’)

firstline f.readline()

secondline f.readline()

print (firstline)

print (secondline)

f.close()

Первая строка открывает файл. Прежде чем читать данные из любого файла, его необходимо открыть (подобно тому, как вы открываете электронную книгу на своем устройстве или в приложении, чтобы читать ее). Функция ореn () открывает файл и

получает два аргумента.

Первый аргумент содержит путь к файлу. Если вы не сохранили файлы Work1.ру и Qaz.txt в одном каталоге, строку ‘Qaz.txt’ нужно будет заменить фактическим каталогом, в

котором был сохранен файл.

Второй аргумент содержит режим. Он сообщает, как будет использоваться файл. Чаще

всего встречаются следующие режимы:

'г'- только для чтения.

'w'- только для записи.

Если указанный файл не существует, он будет создан.

Если указанный файл существует, то все данные в нем стираются.

'а' - для присоединения.

Если указанный файл не существует, он будет создан.

Если указанный файл существует, то все данные, записываемые в файл, автоматически

добавляются в конец файла.

'r+' для чтения и записи.

После открытия файла следующая команда firstline f.readline() читает первую

строку в файле и присваивает ее переменной firstline.

При каждом вызове функции readline() из файла читается новая строка. В нашей программе функция readline() была вызвана дважды, поэтому из файла были прочитаны две строки.

5. Отчет сделать при помощи текстового редактора Ms Word, в него

поместить скриншоты результата работы программы.

Python для новичков » Ошибка в Mayavi - VTK » Янв. 16, 2024 12:07:46

Потребовалось код, написанный на Питон 3.11, MAYAVI 4.8.1 и VTK 9.2.6, запустить на Питон 3.5.2, Mayavi 4.8.0 , VTK 8.1.2. Код запустился, но с ошибками.
Одна из которых следующая: “TraitError: The ‘outline_color’ trait of an OrientationMarketWidget instance must be a turple, but a value of ‘_9928288p_void’ was specified”.
Не смог найти, откуда берется этот “аутлайн_колор”.
Может, кто имел дело с Mayavi и ВТК?
Заранее спасибо.

Центр помощи » Как прикрутить к инлайн кнопке ещё несколько » Дек. 17, 2023 12:00:39

Добрый день, начал ковыряться с питоном, решил сделать бота с методичкой бариста, и не могу понять как сделать так, чтобы при нажатии второй инлайн кнопки, выводились ещё несколько кнопок
 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)

Django » Изменение данных столбца в django-tables2 » Ноя. 24, 2023 14:37:52

Всем привет,

никак не могу вывести ссылки на страницу в столбце таблицы, сделанной с помощью django-tables2…
У кого-то есть опыт или ссылка, где есть работающий код? Документация не помогла…

Я из таблицы Gost с двумя текстовыми полями ('name', ‘short_name’) создаю класс GostTable.
Он выводит таблицу, все нормально. Но вместо имени name я хочу сформировать и вывести ссылку на страницу с подробностями,
которая формируется с помощью get_absolute_url() .
Что для этого нужно добавить в этот класс?

 class GostTable(tables.Table):
    class Meta:
        model = Gost
        template_name = "django_tables2/bootstrap.html" 
        fields = ('name', 'short_name')

Python для новичков » Отправка формы fastapi  » Ноя. 14, 2023 09:08:37

Доброе утро!
Пытаюсь отправить форму в шаблоне есть форма
 <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>

в файле app.py
 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

При этом 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
…….

В чем может быть ошибка?

Data Mining » vsekuhnitut.ru - кухни, прихожие, гардеробные, шкафы и другая корпусная мебель от производителя на заказ по индивидуальным размерам » Ноя. 9, 2023 05:37:18


В нашем мебельном магазине вы можете приобрести:
• Кухни и готовые сеты
• Шкафы и шкафы-купе
• Прихожие
• Мебель для спальни
• Гардеробные
• Прачечные
• Гостиные в современном стиле
• Детские комнаты
• Кабинеты
• Журнальные или кухонные столики
• Мебель из мрамора и гранита
• Фасады и столешницы для кухни
• Корпуса
• Наполнение

Преимущества нашего сервиса:
• Быстрые сроки изготовления
• Широкий выбор мебели
• Постоянное пополнение каталога
• Выгодные цены на рынке

Адрес магазина, каталог и другие контакты у нас на сайте: vsekuhnitut.ru

Data Mining » rankstore.net - cs2 boost, boost faceit, premier, matchmaking in cs2. » Ноя. 9, 2023 05:37:03


Constant training, analysis of player demos, study of spreads, grenades do not give the desired result?

BOOST SERVICE R
ankStore will help you with this:
— The booster team consists of 4k+ ELO players on the faceit and 20,000+ rating in the premier;
— The service has a faceit, premier, matchmaking calculator;
— Possibility of boost WITHOUT account transfer;
— Analysis of maps and demos

THERE IS A 20% DISCOUNT ON YOUR FIRST ORDER

You can order here:
rankstore.net