• Как узнать тип данных (расширенный как у Django)?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    как пример

    class my_types:
        def __init__(self):
            self.my_types = [email_type, negotive_type, positive_type]
    
        def check_types(self, check_type):
            for my_type in self.my_types:
                obj = my_type()
                if obj.check_type(check_type):
                    return obj.type_name()
            return "Unknown type"
    
    class email_type(my_types):
        def check_type(self, check_type):
            if "@" in check_type:
                return True
            return False
    
        def type_name(self):
            return "email_type"
    
    class negotive_type(my_types):
        def check_type(self, check_type):
            if "no" in check_type:
                return True
            return False
    
        def type_name(self):
            return "negotive_type"
    
    class positive_type(my_types):
        def check_type(self, check_type):
            if "yes" in check_type:
                return True
            return False
    
        def type_name(self):
            return "positive_type"
    
    
    check_types = ["test@", "yes", "no"]
    
    obj = my_types()
    for check_type in check_types:
        print("{} - {}".format(check_type, obj.check_types(check_type)))

    test@ - email_type
    yes - positive_type
    no - negotive_type

    Ответ написан
    Комментировать
  • Почему не работает условие вызова функции при выборе радиокнопки?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    if self.radio_button_3.isChecked():
                    self.bth_vis.clicked.connect(self.function2)
                else:
                    self.bth_vis.clicked.connect(self.function1)

    Зачем ты тут вешаешь сигналы ? это не так работает
    Что меашет в function1 сделать выбор ?
    Например
    self.bth_vis.clicked.connect(self.make_choice)
    .
    .
    .
    def make_choice(sefl):
        if self.radio_button_3.isChecked():
            self.func_1()
        else:
            self.func_2()
    Ответ написан
    Комментировать
  • Как составить регулярное выражение на число, которое больше нуля и меньше или равное 100?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    Если для случая когда текст произвольный и нужно найти все числа от 0 до 100 то так
    (?<!\d)(\d{1,2}|100)(?!\d)

    regex101.com
    Ответ написан
    2 комментария
  • Как из json достать в python?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    import json
    
    str = '{"code":"000000","message"...}'
    data = json.loads(str)
    
    print(data["data"][0]["adv"]["maxSingleTransAmount"])


    для таких простыней есть json online codebeautify
    Ответ написан
    2 комментария
  • Requirement already satisfied?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    ну если и pip запускаешь из папки где питон установлен то явно у тебя проблемы с путями
    тут есть все что тебе надо
    Ответ написан
    Комментировать
  • Проблема с циклом, что делать?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    выше указали вариант
    а твое творение не работает потому-то break и все что ниже не работает
    print(i)
    break
    i+=1
    while i <= recs:
        cur.execute("SELECT id FROM users")
        res = cur.fetchall()[i][0]
        bot.send_message(res, message.text)
    Ответ написан
    Комментировать
  • Как предпочтительнее писать блок try except?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    try:
        ...
    except JWTError:
        raise exceptions.bad_credentials
    except NoResultFound:
        raise exceptions.bad_credentials


    но с учетом того что у тебя raise одно и тоже то
    try:
        ...
    except (JWTError, NoResultFound):
        raise exceptions.bad_credentials
    Ответ написан
    Комментировать
  • Можно ли создать 2 вирт окружения для проекта в pycharm?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять

    Мой проект использует же только вирт окружение? если в нем нет модуля ide не ищет его где то еще?

    1. Поставить модуль в глобальное окружение
    2. Активирую локальное окружение
    3. Попробуй импортировать модуль

    Это конечно все хорошо

    поэтому скачивать для каждого проекта одни и те же модули не разумно

    но посмотри на это с позиции того кто будет разворачивать твой проект у себя

    Откуда он узнает какие модули нужны проекту?
    Ответ написан
  • Как обнулить значения всех radiobutton сразу?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    я же тебе давал пример тут
    также в словаре и обнуляй/суммируй/умножай

    если значений по умолчанию нет то прогони по словарю и проставь
    radiobutton.setChecked(False)
    Ответ написан
  • Как перевести строку в дату и время?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    Стандартными функциями никак
    Надо городить велосипед или библиотеки

    Классическая
    datetime.strptime
    не умеет склонять по падежам

    Если формат строки такой
    '21 Апрель 16:00'
    то можно так
    date = '21 Апрель 16:00'
    date_obj = datetime.strptime(date, "%d %B %H:%M")
    Ответ написан
    Комментировать
  • Как проверить активность radiobutton в pyqt?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    Например так

    Для rb с разными значениями func
    rb_1.func = "func_1"
    rb_1.toggled.connect(self.on_rb_select)

    В on_rb_select
    rb = self.sender()
    if rb.isChecked():
        self.rb_selected = rb.func

    В self.on_btn_click
    def on_btn_click(self):
        if self.rb_selected == "func_1":
            self.func_1()
        if self.rb_selected == "func_2":
            self.func_2()


    Код

    from PyQt5.QtWidgets import *
    import sys
    
    class main_window(QWidget):
        def __init__(self):
            QWidget.__init__(self)
    
            self.rb_selected = 1
    
            layout = QVBoxLayout()
            self.setLayout(layout)
            self.label = QLabel()
            layout.addWidget(self.label)
    
            gb_layout = QHBoxLayout()
            gb_widget = QWidget()
            gb_widget.setLayout(gb_layout)
            gb = QButtonGroup(gb_widget)
    
            rb_1 = QRadioButton()
            rb_1.setChecked(True)
            rb_1.func = "func_1"
            rb_1.toggled.connect(self.on_rb_select)
            gb.addButton(rb_1)
            gb_layout.addWidget(rb_1)
    
            rb_2 = QRadioButton()
            rb_2.setChecked(False)
            rb_2.func = "func_2"
            rb_2.toggled.connect(self.on_rb_select)
            gb.addButton(rb_2)
            gb_layout.addWidget(rb_2)
    
            layout.addWidget(gb_widget)
    
            self.btn = QPushButton("Press me")
            self.btn.clicked.connect(self.on_btn_click)
            layout.addWidget(self.btn)
    
        def on_btn_click(self):
            if self.rb_selected == "func_1":
                self.func_1()
            if self.rb_selected == "func_2":
                self.func_2()
    
        def on_rb_select(self):
            rb = self.sender()
            if rb.isChecked():
                self.rb_selected = rb.func
    
        def func_1(self):
            self.label.setText("func_1")
    
        def func_2(self):
            self.label.setText("func_2")
    
    if __name__ == "__main__":
        app = QApplication(sys.argv)
        screen = main_window()
        screen.show()
        sys.exit(app.exec_())

    Ответ написан
    Комментировать
  • Логические операторы в Python?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    elif age > 10 and age <= 25:
    или
    elif 10 < age <= 25:
    Ответ написан
    Комментировать
  • Как провалидировать что строка base64 является изображением?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    png и jpg имеют фиксированный формат заголовков
    тебе нужно просто найти этот формат и конвертнуть в base64
    а потом просто найти вхождение в строке

    например для png header такой
    0x89 0x50 0x4e 0x47 0x0d 0x0a 0x1a 0x0a
    base64 такой
    iVBORw0KGg
    Ответ написан
  • Как сложить текстовые значения radiobutton?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    Вот пример для суммы
    Как перемножить думаю что сами догадаетесь

    Код

    from PyQt5.QtWidgets import *
    import sys
    
    class Window(QWidget):
        def __init__(self):
            QWidget.__init__(self)
            layout = QVBoxLayout()
            self.setLayout(layout)
            self.label = QLabel("Сумма = 0")
            layout.addWidget(self.label)
    
            self.sum = 0
            self.gb_list = {}
    
            for i in range(1, 10):
                gb_layout = QHBoxLayout()
                gb_widget = QWidget()
                gb_widget.setLayout(gb_layout)
                gb = QButtonGroup(gb_widget)
                for j in range(1, 10):
                    radiobutton = QRadioButton()
                    radiobutton.setChecked(False)
                    radiobutton.number = "{}".format(i)
                    radiobutton.value = "{}".format(j)
                    radiobutton.toggled.connect(self.onClicked)
                    gb.addButton(radiobutton)
                    gb_layout.addWidget(radiobutton)
                layout.addWidget(gb_widget)
    
        def onClicked(self):
            radioButton = self.sender()
            if radioButton.isChecked():
                self.gb_list[radioButton.number] = int(radioButton.value)
                self.label.setText("Сумма = {}".format(sum(self.gb_list.values())))
    
    app = QApplication(sys.argv)
    screen = Window()
    screen.show()
    sys.exit(app.exec_())



    6260e8f1e1e71034253044.png
    Ответ написан
    Комментировать
  • Почему терминал выдает ошибку ModuleNotFoundError: No module named 'PyQt5.QtWidgets'; 'PyQt5' is not a package?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    Пример рабочий
    Возможно не в том окружении идет запуск
    Ответ написан
    Комментировать
  • Какую структуру проекта laravel выбрать?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    ИМХО велосипед
    для крупных проектов lavarel это чистый backend

    laravel это в первую очередь программирование по соглашениям - научитесь сначала делать правильно а потом уже будите ерундой страдать
    Ответ написан
    3 комментария
  • Регулярное выражение находящее текст после n-го значения подстроки?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    r = re.findall("select(.+?)from", s, re.IGNORECASE | re.DOTALL)
    print(r[2])

    или
    Ответ написан
    Комментировать
  • Как изменить эмоциональную окраску текста?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    хз конечно правильно ли я понял что вы хотите
    да и начальные условия не понятны
    если тупо в лоб и с теми ограничениями что у вас есть то можно так

    c = set(text1.split()).difference(set(text2.split()))
    for i, w in enumerate(text1.split()):
        if w in c:
            print("{} -> {}".format(w, text2.split()[i]))
        else:
            print(w)

    и того
    Сергей
    сегодня
    получил
    двойку -> отлично
    на
    уроке.
    Дома
    ждет
    его
    наказание. -> подарок.
    Ответ написан
    4 комментария
  • Вожможно ли, что я пишу добавить в функцию?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    руки бы за это оторвать но если прям очень надо то как-то так
    def print_da():
        print("DA")
    
    def print_net():
        print("Net")
    
    s = input()
    locals()["print_"+s]()

    для переменных
    print_da = 'Da'
    print_net = 'Net'
    
    s = input()
    print(locals()["print_"+s])
    Ответ написан
    Комментировать
  • Как сделать класс с добавляемыми методами?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    Смущает меня вот это
    def __eq__(self, other):
    Если ты пишешь вспомогательный класс для работы с датами то я бы пошел по этому тупи
    Например
    from datetime import datetime, timedelta
    
    class dt:
        def __init__(self, time=None):
            self.dt = datetime.now()
            if time:
                self.dt = datetime.strptime(str(time), '%Y%m%d%H%M')
    
        def plus_min(self, min=0):
            self.dt += timedelta(minutes=5)
            return self
    
        def minus_min(self, min=0):
            self.dt -= timedelta(minutes=5)
            return self    
    
        def get_time(self):
            return self.dt
    
        def eq(self, time):
            return self.dt == time
    
        def set_date(self, dt=datetime.now()):
            self.dt = dt
            return self
        
    if __name__ == '__main__':
        a = dt('202204061200')
        print(a.plus_min(5).get_time())
        print(a.minus_min(5).get_time())
        print(a.eq('202204061300'))
        print(a.set_date().eq('202204061300'))

    Если же цель написать обертку для существующего класса то я бы разделил и вынес операции в другой класс
    class dt:
        def __init__(self, time=None):
            self.dt = datetime.now()
            if time:
                self.dt = datetime.strptime(str(time), '%Y%m%d%H%M')
    
        def get_dt(self):
            return self.dt
    
    class dt_operation:
        def eq(self, dt1, dt2=datetime.now()):
            return dt1 == dt2
    
    if __name__ == '__main__':
        d1 = dt('202204061300')
        d2 = dt('202204061300')
        
        op = dt_operation()
        print(op.eq(d1.get_dt(), d2.get_dt()))


    В ООП (не программирование а проектировании) есть такие штуки как Ассоциация, Агрегация и Композиция
    Ответ написан