Загрузка данных
import sys
from math import gcd
from functools import reduce
from PyQt6.QtWidgets import QApplication, QMainWindow
from percent import Ui_MainWindow
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
# По умолчанию выбрано 3 числа
self.ui.radio3.setChecked(True)
# Подключение кнопок
self.ui.calcButton.clicked.connect(self.percent_of_number)
self.ui.percentXYButton.clicked.connect(self.x_from_y)
self.ui.addButton.clicked.connect(self.add_percent)
self.ui.subButton.clicked.connect(self.sub_percent)
self.ui.calculateGcdLcmButton.clicked.connect(self.gcd_lcm)
# 1. Нахождение процента от числа
def percent_of_number(self):
try:
percent = float(self.ui.percentEdit.text())
number = float(self.ui.numberEdit.text())
result = number * percent / 100
self.ui.resultLabel.setText(
f"Результат: {result}"
)
except ValueError:
self.ui.resultLabel.setText(
"Ошибка ввода"
)
# 2. Сколько процентов составляет X от Y
def x_from_y(self):
try:
x = float(self.ui.xEdit.text())
y = float(self.ui.yEdit.text())
result = x / y * 100
self.ui.resultXYButton.setText(
f"Результат: {result:.2f}%"
)
except ValueError:
self.ui.resultXYButton.setText(
"Ошибка ввода"
)
# 3. Прибавление процента
def add_percent(self):
try:
number = float(self.ui.addNumberEdit.text())
percent = float(self.ui.addPercentEdit.text())
result = number + number * percent / 100
self.ui.addResultLabel.setText(
f"Результат: {result}"
)
except ValueError:
self.ui.addResultLabel.setText(
"Ошибка ввода"
)
# 4. Вычитание процента
def sub_percent(self):
try:
number = float(self.ui.subNumberEdit.text())
percent = float(self.ui.subPercentEdit.text())
result = number - number * percent / 100
self.ui.subResultLabel.setText(
f"Результат: {result}"
)
except ValueError:
self.ui.subResultLabel.setText(
"Ошибка ввода"
)
# 5. НОД и НОК
def gcd_lcm(self):
try:
numbers = [
int(self.ui.num1Edit.text()),
int(self.ui.num2Edit.text())
]
if self.ui.radio3.isChecked():
numbers.append(
int(self.ui.num3Edit.text())
)
elif self.ui.radio4.isChecked():
numbers.append(
int(self.ui.num3Edit.text())
)
numbers.append(
int(self.ui.num4Edit.text())
)
nod = reduce(gcd, numbers)
nok = numbers[0]
for num in numbers[1:]:
nok = nok * num // gcd(nok, num)
self.ui.resultGcdLcmLabel.setText(
f"НОД = {nod}\nНОК = {nok}"
)
except ValueError:
self.ui.resultGcdLcmLabel.setText(
"Ошибка ввода"
)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())