Читаем Программирование на Python3 с PyQt5 полностью

from PyQt5.QtGui import QPixmap

from PyQt5.QtWidgets import *

from PyQt5.uic import loadUi



class Main(QDialog):

    def __init__(self):

        super(Main, self).__init__

        loadUi('uis/main.ui', self) # загрузка формы в py-скрипт


        self.setWindowTitle('Создание простейшей визуальной '

                            'программы на Python')


        self.setWindowIcon(QtGui.QIcon('images/logo.png'))

        self.label_img.setPixmap(QPixmap('images/main.png'))

        self.label_img.setScaledContents(True)


        self.btn_solve.clicked.connect(self.solve) # Связь кнопки с методом

        self.btn_clear.clicked.connect(self.clear) # Связь кнопки с методом

        self.btn_exit.clicked.connect(self.exit) # Связь кнопки с методом


    def solve(self):

        a = self.lineEdit_a.text

        b = self.lineEdit_b.text

        x = self.lineEdit_x.text

        if validation_of_data(a, b, x):

            a = float(a)

            b = float(b)

            x = float(x)


            if x > 6:

                answer = a / x + b / x ** 2

            else:

                answer = a ** 2 * (x + b)


            self.label_answer.setText('Ответ: ' + str(format(answer, '.2f')))

        else:

            self.label_answer.setText(

                'Ошибка!')


    def clear(self):

        self.lineEdit_a.setText('')

        self.lineEdit_b.setText('')

        self.lineEdit_x.setText('')

        self.label_answer.setText('Ответ: ')


    def exit(self):

        self.close



def validation_of_data(a, b, x):

    """

    проверяем валидность наших данных, с помощью перехвата исключения

    :param a: число, полученное из lineEdit_a

    :param b: число, полученное из lineEdit_b

    :param x: число, полученное из lineEdit_x

    :return: True – прошло валидацию, False – нет

    """

    try:

        float(a)

        float(b)

        float(x)


        return True

    except Exception:

        return False



def main:

    # каждое приложение должно создать объект QApplication

    # sys.argv – список аргументов командной строки

    app = QApplication(sys.argv)

    window = Main # базовый класс для всех объектов интерфейса пользователя

    window.show # отобразить окно на экране

    sys.exit(app.exec_) # запуск основного цикла приложения



if __name__ == '__main__':

    main


3.6 Конвертация файла «ui» в скрипт Python

(PyQt5 UI code generator)


pyuic5 name.ui -o name.py

Запускаем из папки с файлом ui в cmd, после чего появляется “py” скрипт в той же папке.


ЛЕКЦИЯ 4 – СПИСКИ, СЛОВАРИ, ЦИКЛЫ И МАССИВЫ

4.1 Списки и кортежи

Список представляет собой упорядоченную последовательность элементов. Он очень гибкий и является одним из самых используемых типов в Python. Элементы списка не обязательно должны быть одного типа.

Объявить список довольно просто. Внутрь квадратных скобок помещаются элементы списка, разделённые запятой:


a = [67, 5, 90, 20, 30]

b = ['Маша', 'Ваня', 'Лена', 'Марина', 'Арнольд']

print(a)

print(b)

aa = a[:] # Автономная копия списка

aaa = list(a) # Автономная копия списка

aaaa = a.copy # Автономная копия списка

aaa.reverse # Сортировка списка в обратном порядке

print(a[0]) # Первый элемент 67

print(a[2]) # Третий элемент 90

print(b[1]) # второй элемент Ваня

b.append('Дима') # Добавление элемента в конец списка

print(b[-1]) # Печать последнего элемента Дима

a.sort # Сортировка списка

print(a) # [5, 20, 30, 67, 90]

print(aa) # [67, 5, 90, 20, 30]

print(aaa) # [30, 20, 90, 5, 67]

print(aaaa) # [67, 5, 90, 20, 30]



[67, 5, 90, 20, 30]

['Маша', 'Ваня', 'Лена', 'Марина', 'Арнольд']

67

90

Ваня

Дима

[5, 20, 30, 67, 90]

[67, 5, 90, 20, 30]

[30, 20, 90, 5, 67]

[67, 5, 90, 20, 30]


Так же как и список, кортеж (tuple) является упорядоченной последовательностью элементов. Вся разница заключается в том, что кортежи неизменяемы. Кортежи используются для защиты данных от перезаписи и обычно работают быстрее, чем списки, т.к. их нельзя изменять.

Для создания кортежа нужно поместить внутрь круглых скобок элементы, разделённые запятой:


t = (5, 'program', 1 + 3j)

print("t[0] =", t[0])

print("t[1] =", t[1])

print("t[2] =", t[2])

for i in t:

    print(i, end=" – ")


t[0] = 5

t[1] = program

t[2] = (1+3j)

5 – program – (1+3j) –



Списки имеют большой набор функций:

   • append , extend – добавление;

   • insert – вставка;

   • index – найти индекс первого вхождения конкретного элемента;

   • count – подсчет повторов элемента;

   • remove , del – удаление элемента;

   • sort – сортировка;

   • reverse – реверс;

   • pop – извлечение элемента;

   • len – длина списка;

   • max – максимальный элемент;

   • min – минимальный элемент;

   • оператор in – проверка элемента на вхождение.


4.2 Словари

Структура данных, позволяющая идентифицировать ее элементы не по числовому индексу, а по произвольному, называется словарем или ассоциативным массивом. Соответствующая структура данных в языке Python 3 называется dict.

Каждый элемент словаря состоит из двух объектов: ключа и значения. В примере ниже ключом является название страны, а значением является название столицы. Ключ идентифицирует элемент словаря, значение является данными, которые соответствуют данному ключу. Значения ключей – уникальны, двух одинаковых ключей в словаре быть не может.


# Создадим пустой словарь Capitals

Capitals = dict


# Заполним его несколькими значениями

Capitals['Russia'] = 'Moscow'

Capitals['Ukraine'] = 'Kiev'

Capitals['USA'] = 'Washington'


Countries = ['Russia', 'France', 'USA', 'Russia']


for country in Countries:

Перейти на страницу:

Похожие книги

Восстановление данных на 100%
Восстановление данных на 100%

В книге изложены методы восстановления данных с различных носителей информации – жестких дисков, массивов RAID, CD, DVD, карт флэш-памяти, карт фотоаппаратов и мобильных телефонов. Ремонт поврежденного оборудования рассматривается в издании только как один из аспектов всего процесса извлечения данных. Основная тема – извлечение данных, поврежденных из-за физических или логических нарушений в работе компьютерной системы либо неверных действий пользователя. В книге рассматривается восстановление случайно удаленных файлов, извлечение ценной информации с поломанных жестких дисков; описываются программы и методика восстановления данных с поврежденных массивов RAID, что критически важно для работы корпоративных компьютерных систем.Книга не требует специальной подготовки читателя: простые пошаговые процедуры восстановления данных предваряются описанием принципов их хранения на различных носителях.

Петр Андреевич Ташков

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT