Второ преработено и допълнено издание.
Тази книга ще ви помогне да усвоите принципите на програмирането с Python. Първата част е посветена на синтаксиса и правилата за структуриране на кода в Python. Тук ще напишете първата си програма, ще разберете какви типове данни се поддържат и ще се научите да използвате различните оператори, променливи, цикли, математическите функции и други. Разгледана е работата с низове и низовите функции, регулярните изрази, работата със списъци.
Въпреки че първата част е озаглавена “Основи”, в нея на практика са засегнати всички теми, които биха ви били необходими, за да програмирате на Python, включително обработка на изключения, отваряне и затваряне на файлове, обектно ориентирано програмиране, работа с база данни MySQL и основи на SQL синтаксиса. Ще научите и как да обработвате интернет адреси и да правите разбор на HTML еквиваленти. Втората част на книгата е посветена на библиотеката Tkinter и създаването на уиджети – изключително полезни инструменти, чрез които ще създадете графичния интерфейс за вашите приложения.
В последната, трета част, ще намерите много практически примери – за работа с текст, кодировки, работа с дата и време, работа с файлове и папки. Разгледани са и достатъчно сложни теми като работа с нишки, мрежово и уеб програмиране, кодиране и обработка на данни. Последните две глави са посветени на създаването на игра за морски шах и известната 2D игра Змията, а в приложението са разгледани средствата за шифроване в Python.
СЪДЪРЖАНИЕ:
Въведение
Накратко за Python
Крос-платформеност
Python е един от най-простите езици за програмиране
Популярността на Python
Колко струва това?
Философията на Python
Как е устроена тази книга?
Какво е новото във второто издание?
Основи
- Първа програма
- За версиите на Python
- Инсталиране на Python 3
- Първа програма на Python
- Подробно за IDLE
- Подсказки при писане на кода
- Промяна на цветовата тема
- Горещи клавиши
- Поставяне на програмата в отделен файл. Кодировка на текста
- Структура на програмата
- Коментари
- Вход/изход на данни
- Четене на параметрите от командния ред
- Грешка при стартирането на IDLE
- Програмиране на Python за Android
- Променливи и типове данни
- Имена на променливите
- Типове данни
- Присвояване на стойност
- Проверка на типа данни и преобразуване на типове
- Изтриване на променлива
- Оператори
- Математически оператори и работа с числа
- Математически оператори
- Пример: изчисляване на времето на пътуване
- Пример: изчисляване на разхода на гориво
- Избор на правилния тип данни
- Оператори за работа с последователности
- Оператори за присвояване
- Побитови оператори
- Приоритет на изпълнение на операторите
- Прост калкулатор
- Цикли и условни оператори
- Условни оператори
- Логически стойности
- Оператори за сравнение
- Оператор if..else
- Блокове код и отстъпи
- Цикли
- Цикъл for
- Цикъл while
- Операторите break и continue
- Функция range
- Безкрайни цикли
- Безкраен цикъл по погрешка
- Преднамерен безкраен цикъл
- Истинни и неистинни стойности
- Практически пример. Програмата “Нива на достъп”
- Математически функции
- Поддържани типове числа
- Числови функции
- Математически функции
- Случайни числа. Модул random
- Стойностите Infinity и NaN
- Програмата “Познай числото”
- Постановка на задачата
- Работа с генератор на случайни числа
- Кодът на програмата
- Поправка на логическата грешка в програмата
- Низове и низови функции
- Какво е низ? Избор на кавички
- Създаване на низ
- Тройни кавички
- Специални символи
- Действия с низове
- Обръщане към елемент по индекс
- Сечение на низ
- Конкатенация на низове
- Проверка за наличие
- Повторение
- Функция len
- Форматиране на низове и методът format
- Оператор за форматиране %
- Методи за подравняване на низ
- Метод format
- Функции и методи за работа с низове
- Настройки на локала
- Търсене и замяна в низ
- Какво има в низа?
- Шифриране на низ
- Регулярни изрази
- Въведение в регулярните изрази
- Функция compile и основи на регулярните изрази
- Методите match и search
- Метод findall
- Метод sub
- Различни практически примери
- Разделяне на низ с помощта на разделител
- Използване на маска на обвивката
- Съвпадение на текст в началото и края на низа
- Търсене по шаблон
- Търсене и замяна в текст
- Изтриване на нежелани символи от низ
- Списъци
- Какво е списък?
- Операции със списъци
- Многомерни списъци
- Обхождане на елементите на списък
- Търсене на елемент от списък
- Добавяне и премахване на елементи от списък
- Разбъркване на елементи и избиране на случаен елемент
- Сортиране на списък
- Преобразуване на списък в низ
- Изчисления с големи числови масиви
- Програмата “Гараж”
- Кортежи
- Понятието кортеж
- Създаване на кортежи
- Методи на кортежите
- Обхождане на елементите в кортежа
- Кортеж като условие
- Функцията len и операторът in
- Неизменяемост на кортежите и сливания
- Модул itertools
- Разопаковане на кортеж на отделни променливи
- Списъци vs кортежи
- Множества и речници
- Понятието речник
- Различни операции с речници
- Достъп до елемент
- Добавяне и премахване на елементи от речника
- Обхождане на елементите на речник
- Сортиране на речник
- Методите keys, values и някои други
- Програмата Dict
- Понятието множество
- Операции с множества
- Методи на множествата
- Потребителски функции
- Деклариране на функция
- Незадължителни параметри на функция
- Променлив брой параметри
- Анонимни функции
- Функции генератори
- Декоратори
- Рекурсия
- Глобални и локални променливи
- Енкапсулация
- Област на видимост. Ключовата дума global
- Струва ли си да използваме глобални променливи?
- Документиране на функции
- Връщаме няколко стойности
- Именувани аргументи
- Практически пример: програма за четене на RSS ленти
- Дата и време
- Получаване на текущата дата и време
- Форматиране на датата и времето
- Модул calendar
- Функция sleep
- Измерване на времето за изпълнение на фрагменти от кода
- Модули и пакети
- Понятието модул
- Инструкцията import
- Инструкцията from
- Път за търсене на модули
- Повторно зареждане на модула
- EGG файлове
- Обработка на изключения
- Какво е изключение?
- Типове изключения
- Инструкция try..except..else..finally
- Инструкция with .. as
- Генериране на изключения
- Вход/изход на файл
- Работа с файлове
- Отваряне на файл
- Методи за работа с файлове
- Функции за работа с файлове
- Работа с папки
- Права за достъп в UNIX/Linux
- ООП и Python
- Основи на обектно ориентираното програмиране
- Дефиниране на клас и създаване на обект
- Конструктор и деконструктор
- Наследяване
- Специални методи
- Статични методи
- Абстрактни методи
- Презареждане на оператори
- Свойства на класа
- Декоратори на клас
- Практически пример: виртуална котка
- Деклариране на обект
- Деклариране на метод
- Създаване на обект и извикване на метод
- Конструктори
- Атрибути на класа
- Преброяваме котките
- Управление на достъпа до атрибутите. Частни атрибути и методи
- Понятието енкапсулация на обекти
- Частни атрибути и методи
- Кога трябва да използваме частни и кога публични методи?
- Свойства. Управление на достъпа до частен атрибут
- Виртуалната котка. Готово решение
- Работа с база данни SQL
- Основи на езика SQL
- Основни понятия
- Споразумение как да въвеждаме заявки
- Типове полета
- Създаване на таблици с оператора CREATE
- Операторът INSERT: вмъкване на данни в таблица
- Оператор UPDATE: промяна на запис
- Оператор DELETE: изтриване на запис
- Оператор SELECT: извличане на запис
- Групиране на записи
- Сортиране на записи
- Изтриване на полета и таблици
- Работа с MySQL
- Свързване със СУБД
- Изпълнение на заявки
- Работа с интернет
- Разбор на URL адрес
- Декодиране на низа на заявка
- Разбор на HTML еквиваленти
- Преобразуване на относителни препратки
- Определяне на кодировката
Разработка на графичен интерфейс
- Въведение в TKinter
- Етапи при разработката на приложения с GUI
- Импортиране на библиотеката tkinter
- Създаване на главен прозорец
- Създаване на уиджет
- Задаване на свойства на уиджета
- Определяне на събития и техните обработчици
- Разполагане на уиджет в рамките на прозореца
- Показване на главния прозорец. Програмата “Hello from button”
- Уиджети
- Бутони
- Надписи (етикети)
- Полета за въвеждане
- Превключватели и полета за отметка
- Списъци
- Рамка. Програмата “Цветни рамки”
- Дъщерни прозорци
- Скала
- Плъзгач
- Меню. Програмите “Меню” и “Цвят на прозореца”
- Събития и методът bind
- Подробно за метода bind
- Програма за преглеждане на файлове
- Типове събития
- Събития на мишката. Програмата “Реагираме на мишката”
- Събития на клавиатурата. Програмата “Реагираме на клавиатурата”
- Особености при работата с уиджета Text
- Обработка на превключватели
- Обработка на зависими превключватели (радиобутони)
- Обработка на независими превключватели. Програма за избор на операционна система
- Диалогови прозорци
- Диалогови прозорци за отваряне и съхранение на файлове. Програма за преглеждане на файлове и редактор на файлове
- MessageBox – извеждане на различни съобщения. По-нататъшна разработка на текстовия редактор
- Проблемът с кодировката. Инсталиране на модула chardet
- Графични примитиви
- Геометрични примитиви. Програмата “Draw”
- Обръщане към вече съществуващи графични примитиви
Практически задачи
- Работа с текст
- Съвпадение на текст в началото и в края на низа
- Разделяне на низове с използването на няколко разделителя
- Търсене на съответствия с използването на wildcards
- Търсене и замяна в текст
- Работа с Unicode
- Премахване на нежелани интервали от низа
- Подравняване на низ
- Форматиране на текст
- Токенизация на текста
- Примери за работа с дата и време
- Конвертиране на дните в секунди и други основни операции, свързани с преобразуване на времето
- Модулът dateutil
- Часови зони
- Диапазон от дати на текущия месец
- Преобразуване на низ в дата
- Практическа работа с файлове и папки
- Четене и запис на компресирани файлове
- Проверка за съществуване и получаване на допълнителна информация за файла
- Работа с текстови файлове в различни кодировки
- Пренасочване извода на функцията print във файл
- Записване във файл, който не съществува
- Вход/изход с помощта на низове
- Работа с много големи файлове
- Манипулации с пътищата на файловете
- Получаване на съдържанието на папка
- Дескриптор като файлов обект
- Временни файлове и папки
- Работа с файлове в различни формати
- Работа с CSV
- Четене и запис на JSON данни
- Разбор на XML файлове
- Преобразуване на речник в XML
- Модификация и презаписване на XML код
- Декодиране и кодиране на шестнайсетично число
- Base64 кодиране/декодиране
- Паралелизъм
- Общи положения
- Стартиране и прекратяване на нишки
- Демон нишки
- Глобално блокиране на нишките
- Обмен на данни между нишките. Опашки
- Мрежово и уеб програмиране
- Създаване на списък от IP адреси
- Собствен HTTP клиент
- Пишем TCP сървър
- Обмен на данни между интерпретаторите на Python
- “Морски шах” за двама играчи
- Списък с функции
- Функцията draw_board
- Функцията take_input
- Функцията check_win
- Функцията main
- Пишем игра: “Змията” на Python
- За разработката на играта
- Създаване на прозореца на приложението
- Деклариране на спомагателни променливи
- Създаване на игралното поле
- Създаване на основните класове
- Създаване на спомагателни функции
- Пълният изходен код
- Как можем да развием играта?
Средства за шифроване в Python
- Хеширане
- PyCrypto
- Инсталиране
- Шифроване на низ
- Шифроване на файлове с помощта на RSA
- Пакетът cryptography
Заключение
Отзиви
Все още няма отзиви.