Ответы пользователя по тегу Python
  • Как правильно сделать добавление в список из Pool.map?

    obezh
    @obezh
    Python разработчик
    with Pool(3) as p:
        result = p.map(add_card, (cards,)*3 )
    print(result)

    А в def add_card убрать принты
    Особенности форматирования и вывода прописать в add_card любым удобным вариантом, по итогу его и return в функции)
    Ответ написан
    Комментировать
  • Как регулярными выражениями достать координаты из onclick?

    obezh
    @obezh
    Python разработчик
    import re
    
    string = '''onclick="MapWork('gm_1', '53.964127393', '27.6241564751')">'''
    pattern = r", ?\'([\d\.]+)" 
    result = re.findall(pattern,string)
    
    print(result[0],result[1])

    Костыль
    На случай, когда туго с регулярками
    import re
    
    string = '''onclick="MapWork('gm_1', '53.964127393', '27.6241564751')">'''
    result = re.findall(r'onclick="MapWork(.+?)"',string)
    res = re.findall("'(.+?)'",str(result))
    print(res[1],res[2])
    Ответ написан
    Комментировать
  • Код выдает синтаксическую ошибку,жалуясь на семерку в Python 3.7.3 .Что не соответствует синтаксису?

    obezh
    @obezh
    Python разработчик
    Удалите из кода все вот это
    Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 16:52:21) [Clang 6.0
    (clang-600.0.57)] on darwin Type "help", "copyright", "credits" or
    "license()" for more information. >>> >>>
    Ответ написан
    Комментировать
  • Как обновить единственную строку полностью в sqlite3 на Python?

    obezh
    @obezh
    Python разработчик
    UPDATE INTO finance(url, rep, obem, nick) VALUES (?, ?, ?, ?)''',
     (url, rep, obem, nick)

    Что это за бред?
    Либо INSERT INTO table values
    Либо UPDATE table SET a=?, b=?
    Или проверить, есть ли такое поле в такой таблице, и если нету, то insert, если есть, то update. Это два разных запроса для двух разных случаев
    def insert_data(self, url, rep, obem, nick):
            self.c.execute('''INSERT INTO finance(url, rep, obem, nick) VALUES (?, ?, ?, ?)''',
                           (url, rep, obem, nick))
            self.conn.commit()

    Так у Вас заработает добавление записи в бд
    Покурите основы sqlite3 в python
    Ответ написан
  • Как создать дочернее окно в pyqt5?

    obezh
    @obezh
    Python разработчик
    Как вывести новое окно при нажатии Button?
    А вообще у Вас ошибка
    class TwoWindow(QtWidgets.QMainWindow, double_window.Ui_MainWindow):
            def __inir__(self):

    Тут должно быть __init__
    Ваш вариант вполне рабочий, всего лишь опечатка
    Ответ написан
    Комментировать
  • Как в PyQt5 убрать отступы между элементами в GridLayout?

    obezh
    @obezh
    Python разработчик
    from PyQt5 import (QtWidgets, QtCore, QtGui)
    from PyQt5.QtGui import QIcon
    import sys, time
    
    
    class myWindow(QtWidgets.QWidget):
        def __init__(self, parent = None):
            QtWidgets.QWidget.__init__(self, parent)
    
            self.grid = QtWidgets.QGridLayout()
    
            # 1
            self.grid.setVerticalSpacing(0)
            self.grid.setContentsMargins(0, 0, 0, 0)
    
            self.button_1 = QtWidgets.QPushButton("1")
            self.button_2 = QtWidgets.QPushButton("2")
    
            # 2
            sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
            sizePolicy.setHeightForWidth(self.button_1.sizePolicy().hasHeightForWidth())
            self.button_1.setSizePolicy(sizePolicy)
            sizePolicy.setHeightForWidth(self.button_2.sizePolicy().hasHeightForWidth())
            self.button_2.setSizePolicy(sizePolicy)
    
            self.label = QtWidgets.QLabel("1")
            self.label1 = QtWidgets.QLabel("2")
            self.grid.setSpacing(0)
            self.grid.addWidget(self.button_1, 0, 0)
            self.grid.addWidget(self.label, 0, 1)
            self.grid.addWidget(self.button_2, 1, 0)
            self.grid.addWidget(self.label1, 1, 1)
            self.setLayout(self.grid)
    
    
    
    if __name__ == "__main__":
        app = QtWidgets.QApplication(sys.argv)
        window = myWindow()
        window.setWindowTitle("test")
        window.resize(300, 300)
        window.show()
        sys.exit(app.exec_())

    Остальное регулировать размером самого гридлайоута посредством
    self.grid.setGeometry(QtCore.QRect(80, 50, 110, 60))
    в # 1, а сам грид запихивать в виджет, который уже и будет нужным размером окна (300, 300 в данном случае)
    Ответ написан
  • Как запретить QTextEdit менять шрифт текста при удалении?

    obezh
    @obezh
    Python разработчик
    Поставить нужный шрифт по дефолту
    .setStyleSheet("font: 16pt \"Mangal\";")
    Только не при спавне текста в textedit а при отрисовке самого textedit
    Ответ написан
    Комментировать
  • Почему не работают функции dir(), locals(), globals() в PyCharm?

    obezh
    @obezh
    Python разработчик
    print(dir())
    print(locals())
    print(globals())
    Изучите документацию или попытайтесь просто вывести, если не уверены, что функция что-то должна выводить, а не просто возвращать)
    Ответ написан
    Комментировать
  • Что делает скрипт в Python?

    obezh
    @obezh
    Python разработчик
    Сначала срабатывает первый цикл до выполнения условия, когда оно выполняется - срабатывает второй цикл до выполнения условия, как только оно выполняется - изменяется i и переходит к первому циклу. i не меняется, пока скрипт не перейдёт ко второму циклу, ко второму циклу он переходит только при выполнении условия в первом.
    Для таких вещей полезно иногда использовать print на каждой итерации каждого цикла, чтоб смотреть где что происходит, если трудно понять это сходу.
    Ответ написан
    Комментировать
  • Как вывести новое окно при нажатии Button?

    obezh
    @obezh
    Python разработчик
    Использовать QStackedWidget
    ui_main.py:

    from PyQt5 import QtCore, QtGui, QtWidgets
    
    import sys
    
    class Ui_Main(QtWidgets.QWidget):
        def setupUi(self, Main):
            Main.setObjectName("Main")
            Main.resize(800, 480)
    
            self.QtStack = QtWidgets.QStackedLayout()
    
            self.stack1 = QtWidgets.QWidget()
            self.stack2 = QtWidgets.QWidget()
            self.stack3 = QtWidgets.QWidget()
    
            self.Window1UI()
            self.Window2UI()
            self.Window3UI()
    
            self.QtStack.addWidget(self.stack1)
            self.QtStack.addWidget(self.stack2)
            self.QtStack.addWidget(self.stack3)
    
        def Window1UI(self):
            self.stack1.resize(800, 480)
    
            #PushButton1#
            self.PushButton1 = QtWidgets.QPushButton(self.stack1)
            self.PushButton1.setText("BUTTON 1")
            self.PushButton1.setGeometry(QtCore.QRect(10, 10, 100, 100))
    
            #PushButton2#
            self.PushButton2 = QtWidgets.QPushButton(self.stack1)
            self.PushButton2.setText("BUTTON 2")
            self.PushButton2.setGeometry(QtCore.QRect(150, 150, 100, 100))
    
        def Window2UI(self):
            self.stack2.resize(800, 480)
            self.stack2.setStyleSheet("background: red")
    
        def Window3UI(self):
            self.stack3.resize(800, 480)
            self.stack3.setStyleSheet("background: blue")

    Main.py:
    from PyQt5 import QtCore, QtGui, QtWidgets
    from PyQt5.QtWidgets import QApplication, QMainWindow
    
    import sys
    
    from ui_Main import Ui_Main
    
    class Main(QMainWindow, Ui_Main):
        def __init__(self, parent=None):
            super(Main, self).__init__(parent)
            self.setupUi(self)
    
            self.PushButton1.clicked.connect(self.OpenWindow1)
            self.PushButton2.clicked.connect(self.OpenWindow2)
    
        def OpenWindow1(self):
            self.QtStack.setCurrentIndex(1)
    
        def OpenWindow2(self):
            self.QtStack.setCurrentIndex(2)
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        showMain = Main()
        sys.exit(app.exec_())

    По этому "книжному" примеру все должно быть ясно, как белый день. Все ui в одном файле, их обработчик во втором. По образу и подобию подгоняется под любой функционал. Сам с него начинал.
    Ответ написан
    1 комментарий
  • Надо ли создавать виртуальное окружения для конвертации программы в exe?

    obezh
    @obezh
    Python разработчик
    pyinstaller --onefile -w hello.py
    Соберёт Ваш скрипт со всеми зависимостями, интерпретатором и модулями в один файл hello.exe, который можно использовать на другой машине без установленного интерпретатора. Всё, что нужно для этого - pyinstaller. Виртуальное окружение в этом моменте не при чем
    Ответ написан
    Комментировать