SUPER PYTHONISTA The Ultimate Guide to Python Programming from Beginner to Advanced, and Far Beyond - with Step-by- Step Instruction and Extensive Code Examples. Author: Charles Kyriakou Copyright © 2022 Charles Kyriakou All rights reserved. Dedication This book is dedicated to my supportive and patient wife, Joanne, and our emotional therapy dogs, Ringo and Harley. Table of Contents Table of Contents Introduction Chapter 1: Introduction to programming and Python What is programming? What is Python? Why learn Python? Chapter 2: Setting up a development environment Why do you need a development environment? How to set up a development environment How to set up a development environment in PyCharm How to set up a development environment in VS Code Chapter 3: Basic concepts and syntax of Python Variables Data types Operators Control statements Chapter 4: Working with lists, tuples, and dictionaries Lists and list comprehensions Indexing and slicing lists Modifying lists Sorting lists Tuples and tuple manipulation Dictionaries and dictionary manipulation Chapter 5: Working with data types in Python Working with variables Working with numbers Working with strings Working with lists Chapter 6: Control structures in Python Using if statements Using for loops Using while loops Using try and except statements Using with statements Chapter 7: Working with files and data input/output Reading and writing text files Working with file paths and modes Reading and writing files line by line Working with CSV and JSON data What is CSV data? Working with CSV data in Python (using the csv module) What is JSON data? Working with JSON data in Python Database connectivity (SQLite, MySQL, etc.) What is a database? Connecting to and querying a database in Python Chapter 8: Writing and using functions in Python Defining a function Calling a function Returning a value Scope Argument default values Variable number of arguments How to call a function in Python Using keyword arguments in Python Using lambda functions in Python Chapter 9: Working with modules in Python What are modules? Importing specific names from a module Renaming imported names Importing all names from a module Creating and using your own modules Chapter 10: Object orientated programming (OOP) What is object-oriented programming? Defining and using classes Creating and using objects Inheritance and polymorphism Chapter 11: Python libraries and frameworks Introduction to libraries and frameworks What are libraries and frameworks? How to find and install libraries and frameworks NumPy and Pandas for scientific computing and data analysis What is NumPy? What is Pandas? Using NumPy and Pandas for data manipulation and analysis Django for web development What is Django? Setting up a Django project Creating a web application with Django Other popular libraries and frameworks What is TensorFlow? What is Pygame? Using TensorFlow and Pygame in Python Chapter 12: Debugging and error handling in Python Common error types and how to handle them Using the built-in debugger (pdb) Debugging with third-party tools such as PyCharm and pdb++ Handling exceptions with try-except blocks Raising and handling custom exceptions Debugging and error handling best practices Chapter 13: Development Tools and Techniques Virtual Environments for Managing Packages and Dependencies Working with the Python Package Index (PyPI) Creating and Distributing Python Packages Using Continuous Integration and Deployment Tools Performance Optimization and Profiling Techniques Chapter 14: The Python Inspect Library Inspecting Modules and Classes Tips for Using the Inspect Library Chapter 15: Python and Optimization Linear Programming with Pulp and Pyomo Nonlinear Optimization with Scipy Global Optimization with DEAP and PyGMO Constraint Programming with Gurobi and Pyomo Advanced Optimization Techniques with Python Chapter 16: Advanced Python concepts and techniques Decorators and metaprogramming Generators and iterators Working Asynchronous programming with asyncio Working with sets, queues, and stacks Processing and manipulating data with Pandas Working with databases and SQL Web development with Flask Building and deploying web applications Regular expressions Chapter 17: Python and Image Processing Loading and Manipulating Images with Pillow and OpenCV Filtering and Enhancing Images with Scikit-image Extracting Features from Images with Scikit-image and OpenCV Advanced Image Processing Techniques with Python Chapter 18: Python and Audio Processing Loading and Manipulating Audio Files with Librosa and PyAudio Filtering and Enhancing Audio with Scikit-sound Extracting Features from Audio with Librosa and Scikit-sound Advanced Audio Processing Techniques with Python Chapter 19: Python and Video Processing Introduction to Video Processing with Python Loading and Manipulating Video Files with OpenCV and MoviePy Filtering and Enhancing Video with OpenCV and Scikit-video Extracting Features from Video with OpenCV and Scikit-video Advanced Video Processing Techniques with Python Chapter 20: Python and Desktop Applications Creating GUI Applications with PyGTK and PyQt Integrating with External Libraries and APIs Storing and Accessing Data in a Database Packaging and Distributing a Desktop Application Advanced Desktop Application Development Chapter 21: Python and Web Development Introduction to Web Development with Python Building a Web Server with Flask Working with Templates and Forms Integrating a Database with a Web Application Deploying a Web Application to a Hosting Provider Advanced Web Development Techniques with Django Building and Deploying a RESTful API with Flask-RESTful Chapter 22: Python and web scraping Introduction to web scraping with Python Using Beautiful Soup to parse HTML and XML Scraping dynamic websites with Selenium Handling cookies, headers, and authentication Scraping data from APIs and data streams Storing and processing scraped data Advanced web scraping techniques and best practices Chapter 23: Python and Data Analysis Working with Data Structures and Data Types in Python Loading and Cleaning Data Using Pandas Exploring and Visualizing Data with Matplotlib and Seaborn