Не удается выполнить валидацию

Нужна проверка на то, что вводимые значения были равны 0 или 1.

Например, ввели значения 1, 1, 0, 1, то тогда будет выполняться сумма.
Если же ввели значения 0, 1, 0, 2, то тогда система выдает сообщение об ошибке:

"Все поля должны быть заполнены значениями 0 или 1".

Но функция def rst(self) не выполняет желаемое. Как правильно реализовать валидацию с таким условием?

def rst(self):
    if not self.lineEdit_10.text() or not self.lineEdit_2.text() or \
       not self.lineEdit_3.text() or not self.lineEdit_4.text() or \
       not self.lineEdit_5.text() or not self.lineEdit_6.text() or \
       not self.lineEdit_7.text() or not self.lineEdit_8.text() or \
       not self.lineEdit_9.text():
       self.lineEdit.setText("Все поля должны быть заполнены значениями 0 или 1")
    else:
        num1 = int(self.lineEdit_10.text())
        num2 = int(self.lineEdit_2.text())
        num3 = int(self.lineEdit_3.text())
        num4 = int(self.lineEdit_4.text())
        num5 = int(self.lineEdit_5.text())
        num6 = int(self.lineEdit_6.text())
        num7 = int(self.lineEdit_7.text())
        num8 = int(self.lineEdit_8.text())
        num9 = int(self.lineEdit_9.text())

        s = num1 + num2 + num3 + num4 + num5 + num6 + num7 + num8 + num9
        r = float(s / 9)
        self.lineEdit.setText(str(r))

Ответы (2 шт):

Автор решения: n1tr0xs
def rst(self):
    edits = [self.lineEdit_10, self.lineEdit_2, ...]
    texts = [e.text() for e in edits]
    for t in texts:
        if t not in ('0', '1'):
            self.lineEdit.setText('Все поля должны быть заполнены значениями 0 или 1')
            break
    else:
        s = sum(map(int, texts))
        r = s/9 # float() тут не нужен, и так будет float
        self.lineEdit.setText(str(r))

Или можно так:

def rst(self):
    edits = [self.lineEdit_10, self.lineEdit_2, ...]
    texts = [e.text() for e in edits]
    if all(t in ('0', '1') for t in texts):
        s = sum(map(int, texts))
        r = s/9 # float() тут не нужен, и так будет float
        self.lineEdit.setText(str(r))
    else:
        self.lineEdit.setText('Все поля должны быть заполнены значениями 0 или 1')
→ Ссылка
Автор решения: S. Nick

Попробуйте так:

import sys   
from PyQt5 import QtCore, QtGui, QtWidgets
 
#from blok1 import Ui_MainWindow
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1598, 906)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.gridLayoutWidget = QtWidgets.QWidget(self.centralwidget)
        self.gridLayoutWidget.setGeometry(QtCore.QRect(50, 20, 321, 831))
        self.gridLayoutWidget.setObjectName("gridLayoutWidget")
        
        self.gridLayout = QtWidgets.QGridLayout(self.gridLayoutWidget)         # ???
#        self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)    
        
        self.gridLayout.setContentsMargins(0, 0, 0, 0)
        self.gridLayoutWidget_2 = QtWidgets.QWidget(self.centralwidget)
        self.gridLayoutWidget_2.setGeometry(QtCore.QRect(370, 20, 561, 831))
        self.gridLayoutWidget_2.setObjectName("gridLayoutWidget_2")
        self.gridLayout_2 = QtWidgets.QGridLayout(self.gridLayoutWidget_2)
        self.gridLayout_2.setContentsMargins(0, 0, 0, 0)
        self.gridLayout_2.setObjectName("gridLayout_2")
        self.lineEdit_2 = QtWidgets.QLineEdit("1", self.gridLayoutWidget_2)    # "1", убрать
        self.lineEdit_2.setObjectName("lineEdit_2")
        self.gridLayout_2.addWidget(self.lineEdit_2, 10, 1, 1, 1)
        self.lineEdit_4 = QtWidgets.QLineEdit("0", self.gridLayoutWidget_2)    # ...
        self.lineEdit_4.setObjectName("lineEdit_4")
        self.gridLayout_2.addWidget(self.lineEdit_4, 9, 1, 1, 1)
        self.lineEdit_6 = QtWidgets.QLineEdit("1", self.gridLayoutWidget_2)
        self.lineEdit_6.setObjectName("lineEdit_6")
        self.gridLayout_2.addWidget(self.lineEdit_6, 8, 1, 1, 1)
        self.lineEdit_8 = QtWidgets.QLineEdit("0", self.gridLayoutWidget_2)
        self.lineEdit_8.setObjectName("lineEdit_8")
        self.gridLayout_2.addWidget(self.lineEdit_8, 7, 1, 1, 1)
        self.lineEdit_9 = QtWidgets.QLineEdit("1", self.gridLayoutWidget_2)
        self.lineEdit_9.setObjectName("lineEdit_9")
        self.gridLayout_2.addWidget(self.lineEdit_9, 6, 1, 1, 1)
        self.lineEdit_10 = QtWidgets.QLineEdit("0", self.gridLayoutWidget_2)
        self.lineEdit_10.setObjectName("lineEdit_10")
        self.gridLayout_2.addWidget(self.lineEdit_10, 5, 1, 1, 1)
        self.lineEdit_3 = QtWidgets.QLineEdit("1", self.gridLayoutWidget_2)
        self.lineEdit_3.setObjectName("lineEdit_3")
        self.gridLayout_2.addWidget(self.lineEdit_3, 4, 1, 1, 1)
        self.lineEdit_7 = QtWidgets.QLineEdit("0", self.gridLayoutWidget_2)
        self.lineEdit_7.setObjectName("lineEdit_7")
        self.gridLayout_2.addWidget(self.lineEdit_7, 3, 1, 1, 1)
        self.lineEdit_5 = QtWidgets.QLineEdit("1", self.gridLayoutWidget_2)
        self.lineEdit_5.setObjectName("lineEdit_5")
        self.gridLayout_2.addWidget(self.lineEdit_5, 2, 1, 1, 1)
        self.textEdit_21 = QtWidgets.QTextEdit(self.gridLayoutWidget_2)
        self.textEdit_21.setObjectName("textEdit_21")
        self.gridLayout_2.addWidget(self.textEdit_21, 1, 1, 1, 1)
        self.gridLayoutWidget_3 = QtWidgets.QWidget(self.centralwidget)
        self.gridLayoutWidget_3.setGeometry(QtCore.QRect(1200, 30, 321, 71))
        self.gridLayoutWidget_3.setObjectName("gridLayoutWidget_3")
        self.gridLayout_3 = QtWidgets.QGridLayout(self.gridLayoutWidget_3)
        self.gridLayout_3.setContentsMargins(0, 0, 0, 0)
        self.gridLayout_3.setObjectName("gridLayout_3")
        self.pushButton_3 = QtWidgets.QPushButton(self.gridLayoutWidget_3)
        self.pushButton_3.setObjectName("pushButton_3")
        self.gridLayout_3.addWidget(self.pushButton_3, 0, 0, 1, 1)
        self.pushButton_2 = QtWidgets.QPushButton(self.gridLayoutWidget_3)
        self.pushButton_2.setObjectName("pushButton_2")

# НИКОГДА НЕ ИЗМЕНЯЙТЕ код, сгенерированный Qt Designer, НИКОГДА !!!
# ---------------------> ? <--------          
#        self.gridLayout_3.addWidget(self.pushButton_2, 0, 1, 1, 1)
        self.gridLayout_2.addWidget(self.pushButton_2, 0, 1, 1, 1)        
        
        self.lineEdit = QtWidgets.QLineEdit("100", self.centralwidget)
        self.lineEdit.setGeometry(QtCore.QRect(1180, 150, 381, 61))
        self.lineEdit.setObjectName("lineEdit")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 1598, 21))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "Расположение органов управления в зонах моторного поля"))
        self.pushButton_3.setText(_translate("MainWindow", "Рассчитать"))
        self.pushButton_2.setText(_translate("MainWindow", "Очистить"))


class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        
        self.pushButton_3.clicked.connect(self.rst)
        self.pushButton_2.clicked.connect(self.clr)
        
        self.valids = ("0", "1")                                          # +++
        
    def clr(self):
         self.lineEdit_10.clear()
         self.lineEdit_2.clear()
         self.lineEdit_3.clear()
         self.lineEdit_4.clear()
         self.lineEdit_5.clear()
         self.lineEdit_6.clear()
         self.lineEdit_7.clear()
         self.lineEdit_8.clear()
         self.lineEdit_9.clear()
  
# +++ vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv    
    def rst(self):
        if self.lineEdit_10.text() in self.valids and self.lineEdit_2.text() in self.valids and \
           self.lineEdit_3.text() in self.valids and self.lineEdit_4.text() in self.valids and \
           self.lineEdit_5.text() in self.valids and self.lineEdit_6.text() in self.valids and \
           self.lineEdit_7.text() in self.valids and self.lineEdit_8.text() in self.valids and \
           self.lineEdit_9.text() in self.valids:
           
            num1 = int(self.lineEdit_10.text())
            num2 = int(self.lineEdit_2.text())
            num3 = int(self.lineEdit_3.text())
            num4 = int(self.lineEdit_4.text())
            num5 = int(self.lineEdit_5.text())
            num6 = int(self.lineEdit_6.text())
            num7 = int(self.lineEdit_7.text())
            num8 = int(self.lineEdit_8.text())
            num9 = int(self.lineEdit_9.text())
    
            s = num1 + num2 + num3 + num4 + num5 + num6 + num7 + num8 + num9
            r = float(s / 9)
            self.lineEdit.setText(str(r))           
        else:
           self.lineEdit.setText("Все поля должны быть заполнены значениями 0 или 1")
# +++ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        
        
if __name__ == "__main__":    
    import sys
    app = QtWidgets.QApplication(sys.argv)
    w = MainWindow()
    w.show()
    sys.exit(app.exec_())
→ Ссылка