Python Programming Bible | Networking, GUI, Email, XML, CGI
3.6 (2,390 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
113,852 students enrolled

Python Programming Bible | Networking, GUI, Email, XML, CGI

Python 3 is one of the most popular programming languages. Companies like Facebook, Microsoft and Apple all want Python
3.6 (2,390 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
113,852 students enrolled
Created by Frahaan Hussain
Last updated 8/2018
English [Auto]
Current price: $139.99 Original price: $199.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 6 hours on-demand video
  • 13 articles
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Python programming
  • Application programming
  • Semantics of general programming
  • The format of coding applications
  • All the functions of Python programming
  • Application programming
Course content
Expand all 97 lectures 06:08:08
+ Introduction & Setup
5 lectures 13:39

Introduction to my Python programming course.

Preview 01:31

Learn how to setup Python on Mac OS X.

Preview 03:22

Learn how to setup Python on Linux/Ubuntu.

Setup On Linux/Ubuntu
Setup On Windows

Let's test your knowledge of the introduction & setup of Python.

Quiz 1 - Intro
1 question
+ Basics
27 lectures 02:36:31

In computer programming, a comment is a programmer-readable explanation or annotation in the source code of a computer program. They are added with the purpose of making the source code easier for humans to understand, and are generally ignored by compilers and interpreters.

Preview 02:24

Learn about Lists and how to group common data together.


Learn about Tuples and how to group common data together and how they differ to Lists.


Learn about Dictionaries and how they can be used in a similar manner to Arrays.


Learn how to convert data/variables to different data types.

Data Type Conversion

An arithmetic operator is a mathematical function that takes two operands and performs a calculation on them. They are used in common arithmetic and most computer languages contain a set of such operators that can be used within equations to perform a number of types of sequential calculation.

Arithmetic Operators

The equality operator converts the operands if they are not of the same type, then applies strict comparison. If both operands are objects, then JavaScript compares internal references which are equal when operands refer to the same object in memory.

Preview 02:53

The basic assignment operator is equal ( = ), whichassigns the value of its right operand to its left operand. That is, x = y assigns the value of y to x . The other assignment operators are usually shorthand for standard operations, as shown in the following definitions and examples.

Assignment Operators

Bitwise operators are used to change individual bits in an operand. A single byte of computer memory-when viewed as 8 bits-can signify the true/false status of 8 flags because each bit can be used as a boolean variable that can hold one of two values: true or false.

Bitwise Operators

Logical operators are typically used with Boolean (logical) values. When they are, they return a Boolean value. However, the && and || operators actually return the value of one of the specified operands, so if these operators are used with non-Boolean values, they may return a non-Boolean value.

Logical Operators

As the name explains the membership operators are used to validate the membership of a value. These operators are used to find out whether a value is a member of a sequence such as string or list membership operators are of two types: (1) in and (2) not in.

Membership Operators

The identity operators in Python are used to determine whether a value is of a certain class or type. They are usually used to determine the type of data a certain variable contains. For example, you can combine the identity operators with the built-in type() function to ensure that you are working with the specific variable type

Identity Operators

Operator precedence determines the way in which operators are parsed with respect to each other. Operators with higher precedence become the operands of operators with lower precedence.

Operator Precedence

Decision making is anticipation of conditions occurring while execution of the program and specifying actions taken according to the conditions.

Decision Making

In computer programming, a loop is a sequence of instruction s that is continually repeated until a certain condition is reached. Typically, a certain process is done, such as getting an item of data and changing it, and then some condition is checked such as whether a counter has reached a prescribed number.

Preview 05:59

Loop control statements change execution from its normal sequence. When execution leaves a scope, all automatic objects that were created in that scope are destroyed.

Loop Control Statements

Number data types store numeric values. They are immutable data types, means that changing the value of a number data type results in a newly allocated object.


Overview A string is a list of characters in order. A character is anything you can type on the keyboard in one keystroke, like a letter, a number, or a backslash.


list (also called an array in other programming languages) is a tool that can be used to store multiple pieces of information at once. It can also be defined as a variable containing multiple other variables.

Lists In Depth

Python - Tuples. A tuple is a sequence of immutablePython objects. Tuples are sequences, just like lists. The differences between tuples and lists are, the tuples cannot be changed unlike lists and tuples use parentheses, whereas lists use square brackets.

Tuples In Depth

Learn about Dictionaries and how they can be used in a similar manner to Arrays in more depth.

Dictionary In Depth

A Python program can handle date and time in several ways. Converting between date formats is a common chore for computers. Python's time and calendar modules help track dates and times

Preview 06:47

In programming, a named section of a program that performs a specific task. In this sense, a function is a type of procedure or routine. Some programming languages make a distinction between a function, which returns a value, and a procedure, which performs some operation but does not return a value.


module is a Python object with arbitrarily named attributes that you can bind and reference. Simply, a module is a file consisting of Python code. A module can define functions, classes and variables. A module can also include runnable code.


For instance, a keyboard or computer mouse is an input device for a computer, while monitors and printers are output devices. Devices for communication between computers, such as modems and network cards, typically perform both input and output operations.

Preview 12:30

Exception handlingException handling is the process of responding to the occurrence, during computation, of exceptions – anomalous or exceptional conditions requiring special processing – often changing the normal flow of program execution.

Handling Exceptions

Let's see how your basic Python programming skills are progressing?

Quiz 2 - Basics
6 questions
+ Classes/Objects
10 lectures 31:52

In object-oriented programming, a class is an extensible program-code-template for creating objects, providing initial values for state (member variables) and implementations of behavior (member functions or methods).

Simple Example

In the class-based object-oriented programming paradigm, "object" refers to a particular instance of a class where the object can be a combination of variables, functions, and data structures

Creating Instance Objects

Let's discuss how attributes can actually be accessed from a class and it's instance objects.

Accessing Attributes

constructor is a special kind of method that Python calls when it instantiates an object using the definitions found in your class. Python relies on the constructor to perform tasks such as initialising (assigning values to) any instance variables that the object will need when it starts.

Preview 05:49

destructor is a special member function that is called when the lifetime of an object ends. The purpose of the destructor is to free the resources that the object may have acquired during its lifetime.4 Apr 2018

Destroying Objects

In object-oriented programming, inheritance is when an object or class is based on another object (prototypal inheritance) or class (class-based inheritance), using the same implementation. Inheritance in most class-based object-oriented languages is a mechanism in which one object acquires all the properties and behaviours of the parent object. Inheritance allows programmers to create classes that are built upon existing classes,[1] to specify a new implementation to maintain the same behaviour (realising an interface), to reuse code and to independently extend original software via public classes and interfaces. The relationships of objects or classes through inheritance give rise to a directed graph.

Class Inheritance

Method overriding, in object-oriented programming, is a language feature that allows a subclass or child class to provide a specific implementation of a method that is already provided by one of its superclasses or parent classes.

Overriding Methods

Ffunction overloading or method overloading is the ability to create multiple methods of the same name with different implementations.

Preview 00:50

Operator overloading (less commonly known as ad-hoc polymorphism) is a specific case of polymorphism (part of the OO nature of the language) in which some or all operators like +, = or == are treated as polymorphic functions and as such have different behaviours depending on the types of its arguments.

Overloading Operators

Data hiding is a software development technique specifically used in object-oriented programming (OOP) to hide internal object details (data members). Data hiding ensures exclusive data access to class members and protects object integrity by preventing unintended or intended changes.

Data Hiding

How are you progressing with classes and objects?

Quiz 3 - Classes/Objects
5 questions
+ Regular Expressions
4 lectures 14:42

Learn about how the match function can be used to check if a string starts with another string.

Match Function

Learn about how the search function can be used to check if a string contains another string.

Search Function

Time to advance our knowledge with super duper advanced expressions to up or RegEx game.

Preview 04:31

Learn how you can easily search and replace content within a string using regular expressions.

Search & Replace

Let's test your skills in regular expressions.

Quiz 4 - Regular Expressions
2 questions
+ CGI Programming
4 lectures 24:20

Common Gateway Interface (CGI) is a standard protocol that defines how web server software can delegate the generation of webpages to a console application.

Basic CGI Programming

The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI. If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the entity in the response and not the source text of the process, unless that text happens to be the output of the process.

GET Method

The POST method is used to request that the origin server accept the entity enclosed in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line.

POST Method

An HTTP cookie (also called web cookieInternet cookie, browser cookie, or simply cookie) is a small piece of data sent from a website and stored on the user's computer by the user's web browser while the user is browsing.

Preview 05:20

How is your CGI programming knowledge?

Quiz 5 - CGI Programming
3 questions
+ Database
9 lectures 33:35

Learn how to setup a MySQL database for Python applications.

Setup Database

Learn how to connect to a database.

Preview 05:27

Learn how to create a table for use in a database.

Create Table

Learn how to insert data into a table.

Preview 04:15

The Read Database operator is used for loading data from a database.

READ Operation

The UPDATE statement is used to modify the existing records in a table.

UPDATE Operation

The DELETE statement is used to delete a row or rows from an existing database.

DELETE Opereation

Learn how to create a server file.

Preview 04:22

Learn how to create a client file to interact with a server file.

Simple Client

Are you an expert in databases?

Quiz 6 - Database
3 questions
+ Multithreading
4 lectures 25:22

Learn how to initiate a new thread in your Python application.

Initiate a New Thread

Learn how to create a thread using a more dynamic class system.

Preview 06:25

Learn about synchronising threads in your application.

Synchronise Threads

Learn about priority queues and multithreading.

Multithreaded Priority Queue

How multi threaded are you :D

Quiz 7 - Multithreading
1 question
1 lecture 09:58

Learn how to use and parse XML file in Python

Parse an XML File
20 lectures 58:06

Tkinter is a Python binding to the Tk GUI toolkit. It is the standard Python interface to the Tk GUI toolkit, and is Python's de facto standard GUI. Tkinter is included with the standard Microsoft Windows and Mac OS X install of Python.


The Button widget is a standard Tkinter widget used to implement various kinds of buttons. Buttons can contain text or images, and you can associate a Python function or method with each button. When the button is pressed, Tkinter automatically calls that function or method.

Preview 03:10

The Canvas widget provides structured graphics facilities for Tkinter. This is a highly versatile widget which can be used to draw graphs and plots, create graphics editors, and implement various kinds of custom widgets.


The Checkbutton widget is a standard Tkinter widgets used to implement on-off selections. Checkbuttons can contain text or images, and you can associate a Python function or method with each button. When the button is pressed, Tkinter calls that function or method.


The Entry widget is a standard Tkinter widget used to enter or display a single line of text.

Preview 01:49

A frame is rectangular region on the screen. The frame widget is mainly used as a geometry master for other widgets, or to provide padding between other widgets.


The Label widget is a standard Tkinter widget used to display a text or image on the screen. The label can only display text in a single font, but the text may span more than one line. In addition, one of the characters can be underlined, for example to mark a keyboard shortcut.


The Listbox widget is a standard Tkinter widget used to display a list of alternatives. The listbox can only contain text items, and all items must have the same font and color. Depending on the widget configuration, the user can choose one or more alternatives from the list.


The Menubutton widget displays popup or pulldown menu when activated.


The Menu widget is used to implement toplevel, pulldown, and popup menus.


The Message widget is a variant of the Label, designed to display multiline messages. The message widget can wrap text, and adjust its width to maintain a given aspect ratio.


The Radiobutton is a standard Tkinter widget used to implement one-of-many selections. Radiobuttons can contain text or images, and you can associate a Python function or method with each button. When the button is pressed, Tkinter automatically calls that function or method.


The Scale widget allows the user to select a numerical value by moving a “slider” knob along a scale. You can control the minimum and maximum values, as well as the resolution.


This widget is used to implement scrolled listboxes, canvases, and text fields.


The Text widget provides formatted text display. It allows you to display and edit text with various styles and attributes. The widget also supports embedded images and windows.


The Toplevel widget work pretty much like Frame, but it is displayed in a separate, top-level window. Such windows usually have title bars, borders, and other “window decorations”.


The Spinbox widget is a variant of the standard Tkinter Entry widget, which can be used to select from a fixed number of values.


The PanedWindow widget is a geometry manager widget, which can contain one or more child widgets (“panes”). The child widgets can be resized by the user, by moving separator lines (“sashes”) using the mouse.


The Tkinter tkMessageBox has various methods to display a message box.

Preview 02:04

The LabelFrame widget is a variant of the Tkinter Frame widget. By default, it draws a border around its child widgets, and it can also display a title.


How GUI are you in this test?

Quiz 8 - GUI
2 questions
+ Extra Useful Links
13 lectures 00:03

Python Homepage



Github Python





Hitchhiker's Gudie

Python Docs

Python Developers Guide

Python Guide (GitHub)

Awesome Guide
  • Passion for learning Python
  • Basic computer knowledge and skills
  • Passion for programming
  • Basic knowledge of computer science is optional

Learn about everything there is to know about Python Applications and How To Program Them. A step by step process is used to show explain every facet of these topics.

Gain a good understanding of the following concepts with this course:

  1. What Python is?

  2. How to program in the Python language

  3. Features of the Python programming language

  4. Coding semantics

  5. Website programming

  6. Design practises of applications

  7. Application programming

  8. GUI programming

  9. CGI programming

  10. Network programming

  11. Email programming

  12. XML programming

Python is fast becoming a worldwide Tour De Force that is requested by all companies such as Google, Facebook and Microsoft. This course will ensure you are not left as more and more companies request this awesome language. This course will teach your everything about programming Python applications and websites.

You will receive all the knowledge to use and leverage the powerful technology behind these amazing and wonderful platforms.

Over 205,000 students have enrolled on my courses and all of them are extremely satisfied. You will also be satisfied with this course. If you do not like the course, remember that within 30 days you can request a full refundI guarantee you satisfaction.

If you have any questions regarding the topics covered in this course, please feel free to ask. I'm always happy to help those who want to learn.

To summarise this is what you get:

• Lifetime access to HD quality videos. No monthly subscription. Learn at your own pace, whenever you want.

• All videos are downloadable. Learn wherever you want, even without an internet connection!

• Downloadable starter code and final code for each section.

• Free helpful support in the course Q&A when you have questions or get stuck.

• Multiple coding challenges to practice your new skills (solutions included).

Sounds great? Then start this adventure today by clicking the “Take this course" button, and join me in the only course that you will need!

Who this course is for:
  • Anyone looking to learn about Python
  • People looking to learn about programming
  • Those seeking to understand how Python works
  • People seeking guidance on how to create Python based programs
  • Beginners and experts in this field
  • People seeking more knowledge on the various features of the Python programming language