Уведомления

Группа в Telegram: @pythonsu

Уведомления

  • Found 3470 posts.

Центр помощи » Целые точки отрезка » Апрель 20, 2022 13:52:07

Заранее благодарю
Надо написать программу, которая вычислит, сколько всего точек с целочисленными координатами принадлежат отрезку.
Входные данные
Даны четыре целых числа – координаты концов отрезка (x1, y1) и (x2, y2). Каждая из координат не превышает по абсолютной величине значения 1000.
Выходные данные
Требуется вывести количество точек отрезка, имеющих целочисленные координаты.
Примеры
Входные данные
1 0 5 0
Выходные данные
5
Входные данные
-1 -2 2 4
Выходные данные
4

Центр помощи » Как сохранить базу данных, чтобы она была читаема для фрейма данных? » Апрель 17, 2022 18:37:09

Имеется программа, которая получает на вход базу данных, выполняет с ней манипуляции и сохраняет отредактированную БД с помощью функции
 df.to_csv(filename, index=False, mode='a', compression="gzip")
pbar.update()
После чего пытаюсь ее читать с помощью
 df = dd.read_csv("./genfiles/13_Apr_2022_17_18_04.gz")
Подключение к базе данных происходит через
 conn = sqlite3.connect('genfiles/13.6.2009.db')
Манипуляций с базой данных происходит слишком много и если кратко, то некоторые столбцы округляются, некоторые делятся на некоторые константы и сохраняются в новые столбцы
Основные функции по ссылке ниже:
https://pastebin.com/Yztwq7HE
Вопрос заключается в следующем: не могу понять, как можно научить даск читать датафрейм (больших объемов данных - порядка миллиона записей)?

Центр помощи » Как удалить многомерные выбросы? » Апрель 16, 2022 10:40:00

Подскажите, пожалуйста, сделал выборку выбросов. Но не могу понять как написать код для удаления выбросов?

Python для новичков » send_audio (TeleBot) » Апрель 14, 2022 12:17:09

Добрый вечер. Не могу понять, почему не работает метод send_audio. Перепробовал разные способы, но бот так и не отправляет аудиофайл по нажатию на кнопку. В терминале, из-за библиотеки requests, как я понял, аудиофайл не отправляется в ответ. Библиотеку установил, только вот не знаю, как её использовать. Простое импортирование не помогает

Надеюсь, что на скриншоте видно, в чем может быть проблема.
Пробовал PyCharm - все равно не работает.

Python для новичков » Не работают cogs в связке с PyQt5+Discord.py » Апрель 13, 2022 20:27:12

Всем доброго времени суток. Простой бот для discord, единственная его функция приветствовать зашедших в голосовой канал пользователей. Без использования PyQt5, бот работает без ошибок и как положено. После того как прикрутил интерфейс, он всё так же запускается с помощью button, но функция приветствия перестает реагировать. Как я понимаю проблема с отправкой сигнала из дискорда, но куда двигаться дальше не пойму.


main.py

  import os
import sys
import json
import asyncio
import discord
from PyQt5 import QtWidgets
from discord.ext import commands
from asyncqt import QEventLoop, asyncSlot
import botDesign
with open('./master.json', 'r', encoding='utf-8-sig') as f:
    data = json.load(f)
TOKEN = data["guild"]["TOKEN"]
BP = data["guild"]["command_prefix"]
intents = discord.Intents.all()
bot = commands.Bot(command_prefix=BP, case_insensitive=True, intents=intents)
bot.remove_command('help')
class ExampleApp(QtWidgets.QMainWindow, botDesign.Ui_MainWindow):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setupUi(self)
        self.client = MyDiscordCLient()
        self.pushBotButton.clicked.connect(self.on_connect_bot)
        self.pushCogsButton.clicked.connect(self.load_cog)
    @asyncSlot()
    async def on_connect_bot(self):
        await self.client.start(TOKEN)
    @asyncSlot()
    async def load_cog(self):
        for filename in os.listdir("./cogs"):
            if filename.endswith(".py") and not filename.startswith("_"):
                bot.load_extension(f"cogs.{filename[:-3]}")
                print(f'Loaded {filename[:-3]}')
class MyDiscordCLient(discord.Client):
    async def on_ready(self):
        print('Bot logged discord server.')
        await self.change_presence(status=discord.Status.online, activity=discord.Game('test'))
def main():
    app = QtWidgets.QApplication(sys.argv)
    loop = QEventLoop(app)
    asyncio.set_event_loop(loop)
    window = ExampleApp()
    window.show()
    loop.run_forever()
if __name__ == '__main__':
    main()

файл в /cogs

  import discord
import audiopath
import audioread
from discord.ext import commands
from time import sleep
class Audio(commands.Cog):
    def __init__(self, bot):
        self.bot = bot
    @commands.Cog.listener()
    async def on_voice_state_update(self, member: discord.Member, before, after):
        vc_before = before.channel
        vc_after = after.channel
        if vc_before == vc_after:
            return
        if vc_before is None and vc_after is not None:
            channel = member.voice.channel
            vc = await channel.connect()
            sleep(.1)
            vc.play(discord.FFmpegPCMAudio(audiopath.connect))
            with audioread.audio_open(audiopath.connect) as f:
                #   Start Playing
                sleep(f.duration)
            await vc.disconnect()
        elif vc_after is None and vc_before is not None:
            return
        else:
            channel = member.voice.channel
            vc = await channel.connect()
            sleep(.1)
            vc.play(discord.FFmpegPCMAudio(audiopath.connect))
            with audioread.audio_open(audiopath.connect) as f:
                #   Start Playing
                sleep(f.duration)
            await vc.disconnect()
def setup(bot):
    bot.add_cog(Audio(bot))


Центр помощи » Реализация теста с использованием self.assertEqual » Апрель 12, 2022 10:51:05

Добрый день!
Есть программа для работы с файлами (Чтение из файла, запись в файл, удаление строк и т.д):
 import sys
import os
import re
 
## Чтение данных с файла (полностью)
def read_file_full():
    file = open("fileswot.txt")
    print(file.read() + "\n")
    file.close()
    menu()
 
 
## Чтение данных с файла (по - строчно)
def read_file_line():
    file = open("fileswot.txt")
    print(file.readline())
    file.close()
    menu()
 
 
## Перезаписать данные в файл
def record_file():
    file = open('fileswot.txt', 'w')
    try:
        stroka = input('Введите строку для записи в файл: ')
        file.write(stroka + "\n")
    finally:
        file.close()
        menu()
 
 
## Очистка файла
def clearing_file():
    file = open('fileswot.txt', 'r')
    os.system(r'nul>fileswot.txt')
    file.close()
    menu()
 
 
## Дописать данные в файл
def record_fileplus():
    file = open('fileswot.txt', 'a')
    try:
        stroka = input('Введите строку для записи в файл: ')
        file.write(stroka + "\n")
    finally:
        file.close()
        menu(aut)
 
 
## Поиск значений
def search_file():
    file = open("fileswot.txt", "r")
    data = file.read()
    pl = data.count("+")
    mi = data.count("-")
    if pl > mi:
        return ("Use a breakthrough strategy or a transition strategy № 1")
        menu(aut)
    elif pl < mi:
        return ("Use transition strategy № 2 or survival strategy")
        menu(aut)
    else:
        return ("Error - Equal number of values")
        menu(aut)
 
 
## Удаление строки в файле
def delstr_file():
    n = int(input("Введите номер строки для удаления: "))
    with open(r"fileswot.txt", "r") as file:
        lines = file.readlines()
    del lines[n]
    with open(r"fileswot.txt", "w") as file:
        file.writelines(lines)
    menu(aut)
 
 
## Создание меню на удаление
def menu_del(aut):
    print("1. Безвозвратно удалить данные")
    print("2. Вернутся в меню")
    H = (input("Выберите действие: "))
    if H == aut[2]:
        clearing_file()
    elif H == aut[3]:
        menu(aut)
    else:
        return ("Error - The selected parameter is not in the menu")
        menu_del(aut)
 
 
## Создание меню на чтение
def menu_read(aut):
    print("1. Прочитать информацию полностью")
    print("2. Прочитать информацию по - строчно")
    B = (input("Выберите действие: "))
    if B == aut[2]:
        read_file_full()
    elif B == aut[3]:
        read_file_line()
    else:
        return ("Error - The selected parameter is not in the menu")
        menu_read(aut)
 
 
## Создание меню на выход
def menu_exit(aut):
    print("1. Выйти")
    print("2. Вернутся в меню")
    J = (input("Выберите действие: "))
    if J == aut[2]:
        sys.exit(0)
    elif J == aut[3]:
        menu(aut)
    else:
        return ("Error - The selected parameter is not in the menu")
        menu_exit(aut)
 
 
## Создание меню
def menu(aut):
    print("1. Прочитать информацию с файла")
    print("2. Записать информацию в файл")
    print("3. Дописать информацию в файл")
    print("4. Очистить данные файла")
    print("5. Удалить строку в файле")
    print("6. Выполнить поиск по значениям")
    print("7. Выход из программы")
    A = (input("Выберите действие: "))
    if A == aut[2]:
        menu_read(aut)
    elif A == aut[3]:
        record_file()
    elif A == aut[4]:
        record_fileplus()
    elif A == aut[5]:
        menu_del()
    elif A == aut[6]:
        delstr_file()
    elif A == aut[7]:
        search_file()
    elif A == aut[8]:
        menu_exit()
 
    else:
        return ("Error - The selected parameter is not in the menu")
        menu(aut)
 
def autoriz(aut):
    Login = aut[0]
    Password = aut[1]
    a = input("Enter your username: ")
    if a != Login:
        return ("Error - Invalid login was entered")
    else:
        return ("The login was entered correctly")
        b = input("Enter your password: ")
        if b != Password:
            return ("Error - Invalid password was entered")
        else:
            return ("Select the desired action:")
            menu(aut)
 
## Авторизация пользователя
def main():
    aut = ['Admin', 'Qwerty', '1', '2', '3', '4', '5', '6', '7']
    Login = aut[0]
    Password = aut[1]
    a = input("Enter your username: ")
    if a != Login:
        return ("Error - Invalid login was entered")
    else:
        print("The login was entered correctly")
        b = input("Enter your password: ")
        if b != Password:
            return ("Error - Invalid password was entered")
        else:
            return ("Select the desired action:")
            menu(aut)
 
if __name__=='__main__':
    main()
Так же вторая программа создана для реализации тестов с использованием unittest, но при использовании self.assertEqual выдается ошибка, что тестов 0.
Вот код данного теста:
 import unittest
from unittest import TestCase, main
from KP import read_file_full, read_file_line, record_file, clearing_file, record_fileplus, search_file, delstr_file, menu_del, menu_read, menu_exit, autoriz
 
class KP_Test(TestCase):
    def authorization (self):
        aut = ['Admin']
        self.assertEqual(autoriz(aut), "The login was entered correctly")
if __name__ == '__main__':
    main()
Подскажите пожалуйста в чем ошибка?

Python для новичков » Программа в Python (Tkinter) » Апрель 11, 2022 21:12:28

Напишите простую программу в Python (Tkinter). Программа должна иметь примерно 40-50 строк .И перед каждой страке , напишите тщательное объяснение каждой страке . Спасибо заранее.

Python для новичков » Напишите функцию заполнения для каждого метода. » Апрель 9, 2022 15:24:41

Для каждого упражнения нужно пользоваться предоставленным изображениям.

import matplotlib.image as mpimg
import matplotlib.pyplot as plt
import numpy as np


- Напишите функцию нулевого заполнения для каждого метода ниже, функция получает изображение и размер ядра, а функция возвращает дополненное изображение.

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

-Напишите реплицирующую функцию заполнения для каждого метода ниже, функция получает изображение и размер ядра, а функция возвращает дополненное изображение.

Python для новичков » Помогите изменять цвет QWidget по событиям. Интерфейс создан в QT Designer. » Апрель 9, 2022 11:02:46

Задача такая приходит сигнал например “1” и в интерфейсе QWidget изменяет цвет на красный сигнализируя пользователю о событии. Нашел пример с этим виджетом и тремя кнопками но это работает в созданном PyCharm интерфейсе. А у меня сделан в QT Designer и этот способ мне не подходит или я не знаю как это сделать. Прикрепил файл который работает как его упростить и привинтить к интерфейсу от QT Designer!

Python для новичков » Ошибка в bat файлеModuleNotFoundError: No module named » Апрель 7, 2022 00:13:59

При запуске bat файла появляется ошибка: ModuleNotFoundError: No module named ‘pyqiwip2p.types’
Из-за чего такое может быть?

Python для новичков » Программа на Python для управления программами Windows » Апрель 6, 2022 14:43:14

IDLE (Python 3.10 64-bit)
—————————-
Скрипт на Python должен выполнять следующие действия:
1. Запустить (программу 1) на Windows 10 (В ней выбрать папку)
2. Открыть эту папку с файлами в — программе 1
3. Открыть первый файл - нажать нужную кнопку
4. Дождаться окончания проверки (выскочит окно окончания )
и т. д.

Прошу подскажите куда мне двигаться чтобы скрипт на Python делал такое ?
Может есть пример таких скриптов, где посмотреть ?

Python для новичков » Получить список компьютеров из домена » Апрель 6, 2022 14:09:25

Добрый день. Пожалуйста, подскажите, как в Python 3.8 вывести список всех компьютеров находящихся в домене? Можете дать пример?

Python для новичков » Нужна помощь. Вы знаете как это решить. » Апрель 5, 2022 20:10:52

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

Я научился создавать кнопку, привязывать ей текст, но не функцию.
Прошу помочь.

Фотографии: https://ltdfoto.ru/image/MgIZG8
https://ltdfoto.ru/image/MgIabG

Код:
import telebot
from telebot import types
import os
import random



bot = telebot.TeleBot(“токен”)

@bot.message_handler(content_types = текст ) # в квадратных скобках
def start(message):
photo = open('cats/' + random.choice(os.listdir('cats')), ‘rb’)
bot.send_photo(message.from_user.id, photo)




bot.polling(none_stop=True, interval=0)

Python для новичков » Проект PyDev не видит библиотеки java » Апрель 1, 2022 15:11:31

Добрый день.
Переустановили Eclipse, PyDev настроила так: положила в папку eclipse/dropins, проект PyDev появился. Создала новый проект Jython, указала интерпретатор. Создаю файл, подключаю java библиотеку
import java.sql.* ругается на java. Undefined variable java. И еще, раньше использовала True и False без дополнительного подключения библиотек, сейчас eclipse добавил
 from __builtin__ import True
чтобы это значило?

Python для новичков » Как заменить Checkbutton кнопкой (Button) » Март 30, 2022 19:25:13

Всем доброго здоровья) Подскажите пожалуйста как в питоне заменить чек-бокс кнопкой. Т.е. сделать так, чтобы каждое нажатие кнопки по аналогии с чек-боксом включало и отключало какой-то функционал. Интересует реализация в tkinter и не ооп. В поисках ответа вошел в ступор…

Python для новичков » Как обратиться к вложеной архивной папке Microsoft Outlook? » Март 30, 2022 19:21:19

Подскажите битте как обратиться в вложенной архивной папке Microsoft Outlook?
Это доступ к папке входящих писем
  import win32com.client
Outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
Inbox = Outlook.GetDefaultFolder(6)


А как обратиться к папке PythonTEST в архивной папке?



Python для новичков » Помогите понять как работают методы __iter__ и __next__ » Март 30, 2022 12:39:18

В общем, есть простая функция, находящая простые числа. С ней все понятно. Но у меня задание создать класс итерируемых объектов, который будет делать тоже самое. И тут я в тупике: я понимаю, что код внутри метода __next__ должен итерироваться поэтому никаких списков внутри него быть не должно (это противоречит самой идее итератора) Но как запилить решение задачи без использования списка я не понимаю. Буду рад помощи.
Функция:
 def get_prime_numbers(n):
    prime_numbers = []
    for number in range(2, n+1):
        for prime in prime_numbers:
            if number % prime == 0:
                break
        else:
            prime_numbers.append(number)
    return prime_numbers
Мой вариант решения (нерабочий):
 class PrimeNumbers:
    def __init__(self, n):
        self.n = n
        self.number = 0
        self.prime = 2
    def __iter__(self):
        self.number = 0
        self.prime = 2
        return self
    def __next__(self):
        self.number += 1
        if self.number > self.n:
            raise StopIteration()
        for self.number in range(2, self.n+1):
            if self.number % self.prime != 0:
                self.prime = self.number
        return self.prime
prime_number_iterator = PrimeNumbers(n=10000)
for number in prime_number_iterator:
    print(number)

Python для новичков » PyQt5 как исправить ошибку  » Март 30, 2022 09:11:51

Я запускаю PyQt5 на старом компе и выходит приложение,
а на новом я установил PyQt5 и при запуске приложения выходит: qt.qpa.plugin: Could not find the Qt platform plugin “windows” in “”
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Центр помощи » Помогите плииз » Март 29, 2022 22:51:54

Напишите функцию checking(), которая:

- будет принимать в качестве аргумента возвращаемое значение функции pin();

- в случае, если возвращаемое значение функции pin() будет 1234 – выведет на печать “Your code is too simple!”



3. Напишите код вызова функции, который демонстрирует работоспособность функций pin() и checking().

GUI » tkinker (задача про лестницу) » Март 29, 2022 22:09:02

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