Intro Python: Fundamentals by Reuven M. Lerner

Intro Python: Fundamentals

Take your first steps with Python programming

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.

This course will eventually (by January 2019) contain 7-8 hours of video lessons, although with many hands-on exercises.  I've currently recorded about 3 hours of video lessons, meaning that updates and additions will be coming very soon.

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.  

What's included?

Video Icon 62 videos File Icon 10 files


21.6 KB
3 mins
Section 1: Introduction
01 Introduction.mp4
13 mins
02 Variable assignment.mp4
6 mins
03 User input.mp4
6 mins
04 Comments.mp4
6 mins
05 Conditionals.mp4
10 mins
06 Complex conditions.mp4
8 mins
07 Exercise 1 -- weather reaction.mp4
3 mins
08 Solution 1 -- weather reaction.mp4
3 mins
Intro Python, section 1.ipynb
13.8 KB
Section 2: Basic data types
09 None.mp4
8 mins
10 True, False, and boolean context.mp4
9 mins
11 Integers.mp4
7 mins
12 Max int?.mp4
4 mins
13 Converting to ints.mp4
6 mins
14 Exercise 2- Number guessing game.mp4
5 mins
15 Solution 2- Number guessing game.mp4
4 mins
16 Hex, oct, and bin.mp4
7 mins
17 Floats.mp4
8 mins
Intro Python, section 2.ipynb
40.1 KB
Section 3: Strings
15.6 KB
18 Intro to strings.mp4
10 mins
19 Backslashes.mp4
7 mins
20 Raw strings.mp4
6 mins
21 Slices.mp4
6 mins
22 Searching with "in".mp4
2 mins
23 Exercise 3 -- Pig Latin.mp4
4 mins
24 Solution 3 -- Pig Latin.mp4
5 mins
25 String methods.mp4
14 mins
26 Triple-quoted strings.mp4
7 mins
27 Bytes and characters.mp4
8 mins
28 str.format and f-strings.mp4
10 mins
29 print function options.mp4
4 mins
Intro Python, section 3.ipynb
55.1 KB
Section 4: Loops
24.8 KB
Intro Python, section 4.ipynb
11.3 KB
30 for loops.mp4
6 mins
31 indexes and enumerate.mp4
5 mins
32 range.mp4
3 mins
33 Exercise 4 -- loop exercises.mp4
2 mins
34 Solution 4 -- loop exercises.mp4
5 mins
35 break and continue.mp4
4 mins
Section 5: Lists
17 KB
Intro Python, section 5.ipynb
57.6 KB
36 else on loops.mp4
5 mins
39 Assignment and lists.mp4
4 mins
37 while loops.mp4
10 mins
38 lists.mp4
10 mins
41 Exercise 5 -- sum and mean of numbers.mp4
2 mins
42 Solution 5.mp4
3 mins
43 extend and +=.mp4
4 mins
44 advanced inserting into lists.mp4
4 mins
45 removing from a list.mp4
4 mins
46 stacks and queues.mp4
5 mins
47 iterating over lists.mp4
5 mins
48 range.mp4
6 mins
49 str.split.mp4
7 mins
50 str.join.mp4
5 mins
51 Exercise 6 -- Pig Latin sentence.mp4
2 mins
52 Solution 6 -- Pig Latin sentence.mp4
6 mins
53 Adding to strings, adding to lists.mp4
6 mins
54 sorting.mp4
9 mins
Section 6: Tuples
55 Intro to tuples.mp4
6 mins
56 Tuples are immutable.mp4
5 mins
57 Tuple creation trickiness.mp4
7 mins
58 Unpacking.mp4
6 mins
59 Convering to-from tuples.mp4
4 mins
60 Sorting tuples.mp4
3 mins
61 Exercise 7 -- people.mp4
2 mins
62 Solution 7 -- people.mp4
7 mins
Section 7: Dictionaries
17.2 KB


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.

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.

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.

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."

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.

How long is the course? Is it complete?

As of this writing (November 2018), there are about 3 hours of video.  There will be about 8 hours of video lessons when the course is done, covering all of the topics (syntax, numbers, strings, loops, lists, tuples, and dicts) in detail, and with many exercises.

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.

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.

What if I don't like the course?

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

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."

Because better developers have better careers

Have a more satisfying, successful, and lucrative career, by becoming more fluent in Python, Git, and related technologies.