Intro Python: Fundamentals

What you need to start with Python: Syntax, loops, and data structures.

  • 7 Hours of Video
  • Python Beginner
  • 11 Exercises
What You Will Learn:
  • Basic Syntax
  • Data Structures
  • Working with files
  • Writing and Calling functions
  • Basic functional programming
  • Basic object-oriented programming
Some of My Repeat Clients:

If you don't yet know Python, you should

Python is one of the most popular languages in the world. It's widely used in Web development, data science and machine learning, devops, and automated testing.  Stack Overflow reports that it's not only the most popular language on their site, but also the fastest growing language.

So Python is popular.  And it's only getting more popular over time.

Bottom line: If you know Python, then you can get a great job.  Or you can keep your current job, and improve your standing (and thus your salary).  

I know this, because some of the world's best-known companies invite me to teach Python to their engineers.  Just about every day, I go to companies like Apple, Cisco, Ericsson, IBM, Intel, and VMWare, teaching Python to their staff.    These companies are always looking for people who know Python — but because such people are hard to find, they bring me in to train their existing developers.

My students are typically experienced with C, C++, C#, and Java. So they know how to program, but they don't know Python.  I sometimes say that  they can program in Python, but with a Java accent — meaning, they  might know how to get things done, but not in the most efficient or "Pythonic" way.  

My intro course covers data structures, working with files, writing and calling functions, basic functional programming, modules, and basic object-oriented programming.  Throughout the course, I give my students exercises that force them to use what they've learned, and to integrate these ideas into their Python coding.  By the end of the course, they're ready to use Python to solve problems, and to do their jobs — not just because they know Python, but because they have a sense of how it works, and how to teach themselves more.

My course begins with a tour through Python's syntax and data structures — strings, lists, tuples, and dictionaries.  These are the data structures that you must master if you'll become fluent in Python. Lists, tuples, and dicts aren't just for beginner Python developers; the language itself is implemented using oodles of lists, tuples, and dicts. And the sooner you know how to work with them, the sooner you'll become fluent in Python. 


Section 1: Introduction

Welcome to Python, and to this course!

In this first section, we'll look at some of the basic building blocks of the Python language: Variable assignment, user input, conditions (with if/elif/else), and even complex Boolean comparisons.

  • 01 Introduction • 13 mins    preview 
  • 02 Variable assignment • 6 mins 
  • 03 User Input • 6 mins 
  • 04 Comments • 6 mins 
  • 05 Conditionals • 10 mins 
  • 06 Complex conditions • 8 mins 
  • 07 Exercise 1 -- weather reaction • 3 mins 
  • 08 Solution 1 --- weather reaction • 3 mins 
  • Intro Python, section 1.ipynb 

Section 2: Basic data types

Python comes with a number of built-in data types that developers use every day. In this section, we'll introduce the simplest types, and show how we can convert from one type to another.

  • 09 None • 8 mins    preview 
  • 10 True, False, and boolean context • 9 mins 
  • 11 Integers • 7 mins 
  • 12 Max int? • 4 mins    preview 
  • 13 Converting to ints • 6 mins 
  • 14 Exercise 2 - Number guessing game • 5 mins 
  • 15 Solution 2 - Number guessing game • 4 mins 
  • 16 Hex, oct, and bin • 7 mins   preview 
  • 17 Floats • 8 mins 
  • Intro Python, section 2.ipynb 

Section 3: Strings

Want to work with text? Strings (aka "str") are how we do it in Python. In this section, we look at how to define and work with strings.

  • strings-syllabus.pdf    preview
  • 18 Intro to strings • 10 mins 
  • 19 Backslashes • 7 mins 
  • 20 Raw strings • 6 mins    preview
  • 21 Slices • 6 mins 
  • 22 Searching with "in" • 2 mins 
  • 23 Exercise 3 -- Pig Latin • 4 mins 
  • 24 Solution 3 -- Pig Latin • 5 mins 
  • 25 String methods • 14 mins 
  • 26 Triple-quoted strings • 7 mins 
  • 27 Bytes and characters • 8 mins 
  • 28 str.format and f-strings • 10 mins 
  • 29 print function options • 4 mins 
  • Intro Python, section 3.ipynb 

Section 4: Loops

In this section, we'll discuss:
- for loops -- iterating over strings
- how does a "for" loop really work?
- what about the indexes?
- the "enumerate" function
- break and continue
- the "else" clause in Python loops
- iterating a number of times with "range"
- iterable vs. non-iterable objects
- "while" loops
- "for" vs "while" -- when to use each

  • 01 Introduction • 13 mins    preview 
  • Intro Python, section 4.ipynb   
  • 30 for loops • 6 mins 
  • 31 indexes and enumerate • 5 mins 
  • 32 range • 3 mins 
  • 33 Exercise 4 -- loop exercises • 2 mins 
  • 34 Solution 4 -- loop exercise • 5 mins 
  • 35 break and continue • 4 mins 
  • 36 else on loops • 5 mins 
  • 37 while loops • 10 mins 

Section 5: Lists

Lists are the most commonly used data structure for ordered collections, similar to arrays in other languages. In this section, you'll learn how to create and manipulate lists.

  • lists-tuples-syllabus.pdf    preview 
  • Intro Python, section 5.ipynb   
  • 38 lists • 10 mins 
  • 39 Assignment and lists • 4 mins 
  • 40 append • 4 mins 
  • 41 Exercise 5 -- sum and mean of numbers • 2 mins 
  • 42 Solution 5 • 3 mins 
  • 43 extend and += • 4 mins 
  • 44 advanced inserting into lists • 4 mins 
  • 45 removing from a list • 4 mins 
  • 46 stacks and queues • 5 mins 
  • 47 iterating over lists • 5 mins 
  • 48 range • 6 mins 
  • 49 str.split • 7 mins 
  • 50 str.join • 5 mins 
  • 51 Exercise 6 -- Pig Latin sentence • 2 mins 
  • 52 Solution 6 -- Pig Latin sentence • 6 mins 
  • 53 Adding to strings, adding to lists • 6 mins 
  • 54 sorting • 9 mins 

Section 6: Tuples

Tuples are perhaps the most mysterious data structures in Python, because people don't understand why they exist or when they should be used. In this section, we'll introduce tuples and give you insights into when and how to use them.

  • 55 Intro to tuples • 6 mins    
  • 56 Tuples are immutable • 5 mins 
  • 57 Tuple creation trickiness • 7 mins 
  • 58 Unpacking • 6 mins 
  • 59 Convering to-from tuples • 4 mins 
  • 60 Sorting tuples • 3 mins 
  • 61 Exercise 7 -- people • 2 mins 
  • 62 Solution 7 -- people • 7 mins 

Section 7: Dictionaries

Dictionaries are, without a doubt, the most important data structure in Python. In this section, you'll learn how to create and manipulate dictionaries, as well as what makes them so special.

  • dict-syllabus.pdf    preview    
  • 63 Intro to dicts • 5 mins 
  • 64 Exercise 8 -- restaurant • 7 mins 
  • 65 Solution 8 -- restaurant • 6 mins 
  • 66 get and setdefault • 4 mins 
  • 67 iterating over a dict • 3 mins 
  • 68 Exercise 9 -- Rainfall • 2 mins 
  • 69 Solution 9 -- Rainfall • 7 mins 
  • 70 How do dicts work? • 7 mins 
  • Intro Python, section 7.ipynb

Section 8: Sets

Sets are another built-in type, giving us unsorted but high-speed access to unique values.

  • 71 Intro to sets • 5 mins   
  • 72 Lists vs. sets • 3 mins 
  • 73 Adding to and removing from sets • 4 mins 
  • 74 Exercise 10 -- dollar store • 2 mins 
  • 75 Solution 10 -- dollar store • 3 mins 
  • 76 Set operations • 7 mins 
  • 77 Exercise 11 -- spelling bee • 2 mins 
  • 78 Solution 11 -- spelling bee • 3 mins 


  • 79 • 3 mins 

PDFs of slides

  • 01 Introduction.pdf
  • 02 Simple data types (none, boolean, int, string).pdf
  • 03 Lists, tuples, sequences.pdf
  • 04 Dictionaries and sets.pdf

Testimonial Section

I think you have an exceedingly rare crystal clear explanation of all things Python.

I really liked the way you went slow and explained everything in microscopic detail, acknowledging where the NumPy syntax is non-intuitive.

So many tutorials dive in and start piling on statements and commands, never really acknowledging that the syntax is unusual and a departure from regular Python syntax.  So as a non-pro Python person, I'm not worrying about whether my confusion comes from lack of fluency of Python (which I'm relieved to say it didn't) or from inexperience with Numpy (definitely the case, which you were able to elucidate).

David Punsalan

This course was really useful. I got both the concept and systematic 
 understanding of the library.

I wish to have more hands on exercises and maybe a bit more complex tasks as a part of the learning process.

New knowledge already helped me much with my task at work.

Alexander Chilingaryan

I enjoyed the whole course. It was very engaging, helping me to gain deeper insights into NumPy, which shall  definitely help me step into the world of Data Science using Python.

I highly recommend this course to anyone who want to be Data Science aspirants.

Ashok Bharat

Intro to Python: Fundamentals

If you're an experienced developer who has always wanted to learn Python, this is the best starting point I can think of.  I've given this course hundreds of times, to thousands of developers around the world.  I've honed my explanations and exercises to ensure that you'll have the optimum learning experience. 

Money Back Guarantee - No Time Limit

I'm confident that you'll get a ton out of this course.  If you don't, then just e-mail me, and I'll refund your money.  No time limit, either — I trust that you're reasonable.


Money Back Guarantee

Become a Better Developer

I'm Reuven — and for 20 years, I've spent just about every day teaching Python, data science, and Git at some of the world's best-known companies.

I've recorded my most popular courses here, for you to learn these skills — even if you don't work for a big company.

After taking my courses, you'll be able to to solve bigger problems in less time — allowing you to do your current job better, or to find a new, better job.

Frequently Asked Questions

How long is the course? Is it complete?

About 7 hours of video lessons, covering all of the topics (syntax, numbers, strings, loops, lists, tuples, and dicts) in detail, and with many exercises.

What version of Python do you use?

The course uses Python 3.7, the most recent version as of the time I recorded.  I recommend that everyone use Python 3.6 or above in their day-to-day work.

Many of my clients still use Python 2, so I do try to mention where versions 2 and 3 differ.  That'll help those of you who need to use Python 2 in your jobs to bridge the gap between the two.


This price is far too high for someone living in my country. Do you offer "parity pricing," or something like it, for people outside of the world's wealthiest countries?

Yes.  If you live outside of the 30 wealthiest countries in the world, I offer a 40% "parity pricing" discount.  E-mail me at to receive the coupon.

What does this course cover?

The basic syntax and data structures of the Python programming language. In particular, I'll teach you:

- The basic structure (including indentation + blocks)
- Numbers (ints and floats)
- Strings
- Loops (for and while)
- Lists and tuples
- Dictionaries

These are the ideas and techniques that every Python programmer uses, every single day. Whether you're using Python for Web apps, automated testing, data science, devops, or just exploring, this course will teach you the techniques you need to master in order to really understand and work with Python.

What if I don't like the course?

Then e-mail me, at, and I'll refund your money.

Just data structures and loops? Really?!?

Yes, because these are the most important topics you can learn in Python.

This covers the material from (roughly) the first day of my four-day course.  I'm intending to put that entire course online, which means that there will be additional modules covering functions, functional programming, modules, and object-oriented programming.

It's important to remember, though, that these basic data structures (strings, lists, tuples, and dicts) are used each and every day by Python developers, regardless of their skill level or years of experience. If you have a good grasp of these data structures, then you can do some amazing things with Python.

I'm a student or retiree (pensioner). Can I get a discount?

Yes! I offer a 20% discount to students and pensioners.  Just e-mail me ( to get the coupon code.

I've been using Python for a few months. Why should I take this course?

Because in my experience, many people who use Python every day don't have a full understanding of how the language works. As a result, they aren't able to take advantage of its capabilities.

If you have been using Python every day for a year or more, then this course is probably too basic for you.  (Although I've had many students with that background who say that I filled in many gaps in their understanding.)  But if you've been using Python for less than a year, then you will more than likely benefit from this course, learning tricks and tips to make your programs more efficient and "Pythonic."

Are the exercises the same as in Practice Makes Python?

My book (and course), "Practice Makes Python," contains 50 of my favorite exercises from the Python courses I have taught over the years.  So yes, there is some overlap between the exercises.  However, a number of the exercises are new and different.  I'd estimate that about half of the exercises in this course are also in "Practice Makes Python."

What background do I need for this course?

The typical person taking this course has experience with another language — typically C, C#, C++, or Java.  Others take this course with a background in JavaScript, Matlab, or R.

People have taken this course without much of a background in programming, but they have often complained that it moves too fast for them.  I'm planning to put my "Python for non-programmers" course online in the near future, which covers many of the same topics, but at a slower pace and with more explanations.