Python Programming

מק"ט: #40832 | משך קורס: 32 שעות אק'

Python started as an educational programming language, became popular as an intelligent scripting language and is now widely accepted and highly popular as a comprehensive multi-paradigm programming language, suitable for writing applications of any size and complexity. Its enthusiastic user-base and wide standard library, with the addition of numerous third-party libraries, frameworks and extensions, make it suitable for application in any area. Especially, Python’s layered multi-paradigm architecture makes it ideal as a first programming language and allows the novice to acquire it in convenient stages, where each stage attained may be sufficient to write serious applications.
Accordingly, this course starts by arming the student with all the tools necessary for developing conventional procedural application in Python. Then, it adds advanced procedural and functional tools. Then, data abstraction and finally – the essential object-oriented tools. This way, each student emerges from the course with a substantial and useful body of knowledge. Even students who come with a rudimentary programming background are capable to accomplish much with the procedural/functional level of Python and consider the object-oriented level as enrichment.

לפרטים נוספים, מלא את פרטיך או התקשר 03-7100673
*שדות חובה


  • Use the default or some third-party IDE to write and run Python programs
  • Create well organized, efficient and robust Python applications using packages, modules, functions, classes and exception handling
  • Look up the rich Python standard and third-party libraries
  • Apply Python language constructs, operators and the essential built-in functions and modules
  • Understand and exploit Python’s dictionary-based access to variables and arguments
  • Program file input/output, manipulating files and directories.
  • Unleash the full power of procedural programming in Python
  • Apply functional programming in Python
  • Understand the Object Oriented paradigm as applied in Python
  • Exploit metadata exposed by the Python interpreter 

קהל יעד

This course is suitable for programmers maintaining existing projects or starting new projects in Python 2 or 3.

תנאי קדם

No previous knowledge of Python is assumed. However, students must be familiar with at least one structured conventional programming/scripting language. Experience writing procedural code, using iteration and selection control structures (while, for, if, else, else-if), is mandatory. Prior knowledge or experience in object-oriented programming (classes, inheritance, polymorphism) is not required


Hands-on introduction:

  • Downloading and installing Python.
  • The default IDE - IDLE. What to expect from third-party IDE’s
  • Simple expressions using built-in types.
  • Immutable types, object references.
  • The dictionary-based paradigm – traps, pitfalls and benefits
  • Console input.
  • Formatted output.


List Processing:

  • Python collection types: list, tuple, dictionary, set
  • Runtime exceptions: handling and raising.
  • Structured iteration: for, while, iterable objects.
  • List comprehension expressions.


String processing:

  • Procedural string processing with the built-in string type.
  • Regular expression processing in Python.
  • Files and directories:
  • Text-file I/O.
  • File and folder processing.
  • The Python path
  • Object persistence


Functions and modules:

  • Functions: defining and using.
  • Implementing the program entry point
  • Retrieving command line arguments.
  • The two Python scopes.
  • Accessing global variables.
  • Returning multiple values.
  • Receiving different arguments: default values and variadic functions.

Functional programming in Python.

  • Inner functions and closure.
  • Functions as objects.
  • Higher-order functions: decorator.
  • Lambda functions: definition and typical uses.
  • Recursion: typical uses.


Data abstraction in Python.

  • Encapsulation of methods and state in Class.
  • Guaranteed initialization - constructor.
  • Information hiding – methods, private members, properties.
  • Static data and methods.
  • Implementing indexed and keyed access: operator overloading.
  • Implementing sequential access - generator method, iterator.


Object-oriented programming:

  • The requirement for substitutability (polymorphism)
  • Identifying commonality and variance.
  • The Python approach: “Duck typing”.
  • Implementing commonality with inheritance.
  • Specifying interface: Abstract class and methods.
  • Constructor override and supercall, pitfalls.
  • Polymorphic design pattern example – Composite.
  • Bound and unbound methods.
  • Accessing metadata – identifying methods during runtime.



  • Packages: arranging modules hierarchically.
  • Distributing packages.
  • Obtaining third-party Python packages.