Skip to content

Here I will keep track of all the exercises and contents learned while reading the book "Python Crash Course: A Hands-On, Project-Based Introduction to Programming" by Eric Matthes.

Notifications You must be signed in to change notification settings

JChover/Python_Crash_Course

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

Python Crash Course

Note

Book Finished: 12/06/2024 - 10/04/2025.

Table of Contents

Description

Here I will keep track of all the exercises and contents learned while reading the book "Python Crash Course: A Hands-On, Project-Based Introduction to Programming" by Eric Matthes.

Important

No content of the book will be available here, this repository is just a place where I will leave my solutions of the exercises and some of the concepts learned along the way.

Progress

Part I: Basics

Chapter 1 - Getting Started ✔️
  • Setting Up Your Programming Environment
    • Python Versions
    • Running Snippets of Python Code
    • About the Sublime Text Editor
  • Python on Different Operating Systems
    • Python on Windows
    • Python on macOS
    • Python on Linux
  • Running a Hello World Program
    • Configuring Sublime Text to Use the Correct Python Version
    • Running hello_world.py
  • Troubleshooting
  • Running Python Programs from a Terminal
    • On Windows
    • On macOS and Linux
    • Exercise 1-1: python.org
    • Exercise 1-2: Hello World Typos
    • Exercise 1-3: Infinite Skills
  • Summary
Chapter 2 - Variables and Simple Data Types ✔️
  • What Really Happens When You Run hello_world.py
  • Variables
    • Naming and Using Variables
    • Avoiding Name Errors When Using Variables
    • Variables Are Labels
    • Exercise 2-1: Simple Message
    • Exercise 2-2: Simple Messages
  • Strings
    • Changing Case in a String with Methods
    • Using Variables in Strings
    • Adding Whitespace to Strings with Tabs or Newlines
    • Stripping Whitespace
    • Avoiding Syntax Errors with Strings
    • Exercise 2-3: Personal Message
    • Exercise 2-4: Name Cases
    • Exercise 2-5: Famous Quote
    • Exercise 2-6: Famous Quote 2
    • Exercise 2-7: Stripping Names
  • Numbers
    • Integers
    • Floats
    • Integers and Floats
    • Underscores in Numbers
    • Multiple Assignment
    • Constants
    • Exercise 2-8: Number Eight
    • Exercise 2-9: Favorite Number
  • Comments
    • How Do You Write Comments?
    • What Kind of Comments Should You Write?
    • Exercise 2-10: Adding Comments
  • The Zen of Python
    • Exercise 2-11: Zen of Python
  • Summary
Chapter 3 - Introducing Lists ✔️
  • What Is a List?
    • Accessing Elements in a List
    • Index Positions Start at 0, Not 1
    • Using Individual Values from a List
    • Exercise 3-1: Names
    • Exercise 3-2: Greetings
    • Exercise 3-3: Your Own List
  • Changing, Adding, and Removing Elements
    • Modifying Elements in a List
    • Adding Elements to a List
    • Removing Elements from a List
    • Exercise 3-4: Guest List
    • Exercise 3-5: Changing Guest List
    • Exercise 3-6: More Guests
    • Exercise 3-7: Shrinking Guest List
  • Organizing a List
    • Sorting a List Permanently with the sort() Method
    • Sorting a List Temporarily with the sorted() Function
    • Printing a List in Reverse Order
    • Finding the Length of a List
    • Exercise 3-8: Seeing the World
    • Exercise 3-9: Dinner Guests
    • Exercise 3-10: Every Function
  • Avoiding Index Errors When Working with Lists
    • Exercise 3-11: Intentional Error
  • Summary
Chapter 4 - Working with Lists ✔️
  • Looping Through an Entire List
    • A Closer Look at Looping
    • Doing More Work Within a for Loop
    • Doing Something After a for Loop
  • Avoiding Indentation Errors
    • Forgetting to Indent
    • Forgetting to Indent Additional Lines
    • Indenting Unnecessarily
    • Indenting Unnecessarily After the Loop
    • Forgetting the Colon
    • Exercise 4-1: Pizzas
    • Exercise 4-2: Animals
  • Making Numerical Lists
    • Using the range() Function
    • Using range() to Make a List of Numbers
    • Simple Statistics with a List of Numbers
    • List Comprehensions
    • Exercise 4-3: Counting to Twenty
    • Exercise 4-4: One Million
    • Exercise 4-5: Summing a Million
    • Exercise 4-6: Odd Numbers
    • Exercise 4-7: Threes
    • Exercise 4-8: Cubes
    • Exercise 4-9: Cube Comprehension
  • Working with Part of a List
    • Slicing a List
    • Looping Through a Slice
    • Copying a List
    • Exercise 4-10: Slices
    • Exercise 4-11: My Pizzas, Your Pizzas
    • Exercise 4-12: More Loops
  • Tuples
    • Defining a Tuple
    • Looping Through All Values in a Tuple
    • Writing over a Tuple
    • Exercise 4-13: Buffet
  • Styling Your Code
    • The Style Guide
    • Indentation
    • Line Length
    • Blank Lines
    • Other Style Guidelines
    • Exercise 4-14: PEP 8
    • Exercise 4-15: Code Review
  • Summary
Chapter 5 - If Statements ✔️
  • A Simple Example
  • Conditional Tests
    • Checking for Equality
    • Ignoring Case When Checking for Equality
    • Checking for Inequality
    • Numerical Comparisons
    • Checking Multiple Conditions
    • Checking Whether a Value Is in a List
    • Checking Whether a Value Is Not in a List
    • Boolean Expressions
    • Exercise 5-1: Conditional Tests
    • Exercise 5-2: More Conditional Tests
  • if Statements
    • Simple if Statements
    • if-else Statements
    • The if-elif-else Chain
    • Using Multiple elif Blocks
    • Omitting the else Block
    • Testing Multiple Conditions
    • Exercise 5-3: Alien Colors #1
    • Exercise 5-4: Alien Colors #2
    • Exercise 5-5: Alien Colors #3
    • Exercise 5-6: Stages of Life
    • Exercise 5-7: Favorite Fruit
  • Using if Statements with Lists
    • Checking for Special Items
    • Checking That a List Is Not Empty
    • Using Multiple Lists
    • Exercise 5-8: Hello Admin
    • Exercise 5-9: No Users
    • Exercise 5-10: Checking Usernames
    • Exercise 5-11: Ordinal Numbers
  • Styling Your if Statements
    • Exercise 5-12: Styling if statements
    • Exercise 5-13: Your Ideas
  • Summary
Chapter 6 - Dictionaries ✔️
  • A Simple Dictionary
  • Working with Dictionaries
    • Accessing Values in a Dictionary
    • Adding New Key-Value Pairs
    • Starting with an Empty Dictionary
    • Modifying Values in a Dictionary
    • Removing Key-Value Pairs
    • A Dictionary of Similar Objects
    • Using get() to Access Values
    • Exercise 6-1: Person
    • Exercise 6-2: Favorite Numbers
    • Exercise 6-3: Glossary
  • Looping Through a Dictionary
    • Looping Through All Key-Value Pairs
    • Looping Through All the Keys in a Dictionary
    • Looping Through a Dictionary’s Keys in a Particular Order
    • Looping Through All Values in a Dictionary
    • Exercise 6-4: Glossary 2
    • Exercise 6-5: Rivers
    • Exercise 6-6: Polling
  • Nesting
    • A List of Dictionaries
    • A List in a Dictionary
    • A Dictionary in a Dictionary
    • Exercise 6-7: People
    • Exercise 6-8: Pets
    • Exercise 6-9: Favorite Places
    • Exercise 6-10: Favorite Numbers
    • Exercise 6-11: Cities
    • Exercise 6-12: Extensions
  • Summary
Chapter 7 - User Input and While Loops ✔️
  • How the input() Function Works
    • Writing Clear Prompts
    • Using int() to Accept Numerical Input
    • The Modulo Operator
    • Exercise 7-1: Rental Car
    • Exercise 7-2: Restaurant Seating
    • Exercise 7-3: Multiples of Ten
  • Introducing while Loops
    • The while Loop in Action
    • Letting the User Choose When to Quit
    • Using a Flag
    • Using break to Exit a Loop
    • Using continue in a Loop
    • Avoiding Infinite Loops
    • Exercise 7-4: Pizza Toppings
    • Exercise 7-5: Movie Tickets
    • Exercise 7-6: Three Exits
    • Exercise 7-7: Infinity
  • Using a while Loop with Lists and Dictionaries
    • Moving Items from One List to Another
    • Removing All Instances of Specific Values from a List
    • Filling a Dictionary with User Input
    • Exercise 7-8: Deli
    • Exercise 7-9: No Pastrami
    • Exercise 7-10: Dream Vacation
  • Summary
Chapter 8 - Functions ✔️
  • Defining a Function
    • Passing Information to a Function
    • Arguments and Parameters
    • Exercise 8-1: Message
    • Exercise 8-2: Favorite Book
  • Passing Arguments
    • Positional Arguments
    • Keyword Arguments
    • Default Values
    • Equivalent Function Calls
    • Avoiding Argument Errors
    • Exercise 8-3: T-Shirt
    • Exercise 8-4: Large Shirts
    • Exercise 8-5: Cities
  • Return Values
    • Returning a Simple Value
    • Making an Argument Optional
    • Returning a Dictionary
    • Using a Function with a while Loop
    • Exercise 8-6: City Names
    • Exercise 8-7: Album
    • Exercise 8-8: User Albums
  • Passing a List
    • Modifying a List in a Function
    • Preventing a Function from Modifying a List
    • Exercise 8-9: Messages
    • Exercise 8-10: Sending Messages
    • Exercise 8-11: Archived Messages
  • Passing an Arbitrary Number of Arguments
    • Mixing Positional and Arbitrary Arguments
    • Using Arbitrary Keyword Arguments
    • Exercise 8-12: Sandwiches
    • Exercise 8-13: User Profile
    • Exercise 8-14: Cars
  • Storing Your Functions in Modules
    • Importing an Entire Module
    • Importing Specific Functions
    • Using as to Give a Function an Alias
    • Using as to Give a Module an Alias
    • Importing All Functions in a Module
  • Styling Functions
    • Exercise 8-15: Printing Models
    • Exercise 8-16: Imports
    • Exercise 8-17: Styling Functions
  • Summary
Chapter 9 - Classes ✔️
  • Creating and Using a Class
    • Creating the Dog Class
    • Making an Instance from a Class
    • Exercise 9-1: Restaurant
    • Exercise 9-2: Three Restaurants
    • Exercise 9-3: Users
  • Working with Classes and Instances
    • The Car Class
    • Setting a Default Value for an Attribute
    • Modifying Attribute Values
    • Exercise 9-4: Number Served
    • Exercise 9-5: Login Attempts
  • Inheritance
    • The __init__() Method for a Child Class
    • Defining Attributes and Methods for the Child Class
    • Overriding Methods from the Parent Class
    • Instances as Attributes
    • Modeling Real-World Objects
    • Exercise 9-6: Ice Cream Stand
    • Exercise 9-7: Admin
    • Exercise 9-8: Privileges
    • Exercise 9-9: Battery Upgrade
  • Importing Classes
    • Importing a Single Class
    • Storing Multiple Classes in a Module
    • Importing Multiple Classes from a Module
    • Importing an Entire Module
    • Importing All Classes from a Module
    • Importing a Module into a Module
    • Using Aliases
    • Finding Your Own Workflow
    • Exercise 9-10: Imported Restaurant
    • Exercise 9-11: Imported Admin
    • Exercise 9-12: Multiple Modules
  • The Python Standard Library
    • Exercise 9-13: Dice
    • Exercise 9-14: Lottery
    • Exercise 9-15: Lottery Analysis
    • Exercise 9-16: Python Module of the Week
  • Styling Classes
  • Summary
Chapter 10 - Files and Exceptions ✔️
  • Reading from a File
    • Reading an Entire File
    • File Paths
    • Reading Line by Line
    • Making a List of Lines from a File
    • Working with a File’s Contents
    • Large Files: One Million Digits
    • Is Your Birthday Contained in Pi?
    • Exercise 10-1: Learning Python
    • Exercise 10-2: Learning C
  • Writing to a File
    • Writing to an Empty File
    • Writing Multiple Lines
    • Appending to a File
    • Exercise 10-3: Guest
    • Exercise 10-4: Guest Book
    • Exercise 10-5: Programming Poll
  • Exceptions
    • Handling the ZeroDivisionError Exception
    • Using try-except Blocks
    • Using Exceptions to Prevent Crashes
    • The else Block
    • Handling the FileNotFoundError Exception
    • Analyzing Text
    • Working with Multiple Files
    • Failing Silently
    • Deciding Which Errors to Report
    • Exercise 10-6: Addition
    • Exercise 10-7: Addition Calculator
    • Exercise 10-8: Cats and Dogs
    • Exercise 10-9: Silent Cats and Dogs
    • Exercise 10-10: Common Words
  • Storing Data
    • Using json.dump() and json.load()
    • Saving and Reading User-Generated Data
    • Refactoring
    • Exercise 10-11: Favorite Number
    • Exercise 10-12: Favorite Number Remembered
  • Summary
Chapter 11 - Testing Your Code ✔️
  • Testing a Function
    • Unit Tests and Test Cases
    • A Passing Test
    • A Failing Test
    • Responding to a Failed Test
    • Adding New Tests
    • Exercise 11-1: City, Country
    • Exercise 11-2: Population
  • Testing a Class
    • A Variety of Assert Methods
    • A Class to Test
    • Testing the AnonymousSurvey Class
    • The setUp() Method
    • Exercise 11-3: Employee
  • Summary

Part II: Projects

Project 1: Alien Invasion ☑️

Chapter 12 - A Ship that Fires Bullets ✔️
  • Planning Your Project
  • Installing Pygame
  • Starting the Game Project
    • Creating a Pygame Window and Responding to User Input
    • Setting the Background Color
    • Creating a Setting Class
  • Adding the Ship Image
    • Creating the Ship Class
    • Drawing the Ship to the Screen
  • Refactoring: The _check_events() and _update_screen() Methods
    • The _check_events() Method
    • The _update_screen() Method
    • Exercise 12-1: Blue Sky
    • Exercise 12-2: Game Character
  • Piloting the Ship
    • Responding to a Keypress
    • Allowing Continuous Movement
    • Moving Both Left and Right
    • Adjusting the Ship's Speed
    • Limiting the Ship's Range
    • Refactoring _check_events()
    • Pressing Q to Quit
    • Running the Game in Fullscreen Mode
  • A Quick Recap
    • alien_invasion.py
    • settings.py
    • ship.py
    • Exercise 12-3: Pygame Documentation
    • Exercise 12-4: Rocket
    • Exercise 12-5: Keys
  • Shooting Bullets
    • Adding the Bullet Settings
    • Creating the Bullet Class
    • Storing the Bullets in a Group
    • Firing Bullets
    • Deleting Old Bullets
    • Limiting the Number of Bullets
    • Creating the _update_bullets() Method
    • Exercise 12-6: Sideways Shooter
  • Summary
Chapter 13 - ALIENS! ✔️
  • Reviewing the Project
  • Creating the First Alien
    • Creating the Alien Class
    • Creating an Instance of the Alien
  • Building the Alien Fleet
    • Determining How Many Aliens Fit in a Row
    • Creating a Row of Aliens
    • Refactoring _create_fleet()
    • Adding Rows
    • Exercise 13-1: Stars
    • Exercise 13-2: Better Stars
  • Making the Fleet Move
    • Moving the Aliens Right
    • Creating Settings for Fleet Direction
    • Checking Whether an Alien Has Hit the Edge
    • Dropping the Fleet and Changing Direction
    • Exercise 13-3: Raindrops
    • Exercise 13-4: Steady Rain
  • Shooting Aliens
    • Detecting Bullet Collisions
    • Making Larger Bullets for Testing
    • Repopulating the Fleet
    • Speeding Up the Bullets
    • Refactoring _update_bullets()
    • Exercise 13-5: Sideways Shooter Part 2
  • Ending the Game
    • Detecting Alien and Ship Collisions
    • Responding to Alien and Ship Collisions
    • Aliens that Reach the Bottom of the Screen
    • Game Over!
    • Identifying When Parts of the Game Should Run
    • Exercise 13-6: Game Over
  • Summary
Chapter 14 - Scoring ✔️
  • Adding the Play Button
    • Creating a Button Class
    • Drawing the Button on the Screen
    • Starting the Game
    • Resetting the Game
    • Deactivating the Play Button
    • Hiding the Mouse Cursor
    • Exercise 14-1: Press P to Play
    • Exercise 14-2: Target Practice
  • Leveling Up
    • Modifying the Speed Settings
    • Resetting the Speed
    • Exercise 14-3: Challenging Target Practice
    • Exercise 14-4: Difficulty Levels
  • Scoring
    • Displaying the Score
    • Making a Scoreboard
    • Updating the Score as Aliens Are Shot Down
    • Resetting the Score
    • Making sure to Score All Hits
    • Increasing Point Values
    • Rounding the Score
    • High Scores
    • Displaying the Level
    • Displaying the Number of ships
    • Exercise 14-5: All-Time High Score
    • Exercise 14-6: Refactoring
    • Exercise 14-7: Expanding the Game
    • Exercise 14-8: Sideways Shooter, Final Version
  • Summary

Project 2: Data Visualization ☑️

Chapter 15 - Generating Data ✔️
  • Installing Matplotlib
  • Plotting a Simple Line Graph
    • Changing the Label Type and Line Thickness
    • Correcting the Plot
    • Using Built-in Styles
    • Plotting and Styling Individual Points with scatter()
    • Plotting a Series of Points with scatter()
    • Calculating Data Automatically
    • Defining Custom Colors
    • Using a Colormap
    • Saving Your Plots Automatically
    • Exercise 15-1: Cubes
    • Exercise 15-2: Colored Cubes
  • Random Walks
    • Creating the RandomWalk() Class
    • Choosing Directions
    • Plotting the Random Walk
    • Generating Multiple Random Walks
    • Styling the Walks
    • Exercise 15-3: Molecular Motion
    • Exercise 15-4: Modified Random Walks
    • Exercise 15-5: Refactoring
  • Rolling Dice with Plotly
    • Installing Plotly
    • Creating the Die Class
    • Rolling the Die
    • Analyzing the Results
    • Making a Histogram
    • Rolling two Dice
    • Rolling Dice of Different Sizes
    • Exercise 15-6: Two D8s
    • Exercise 15-7: Three Dice
    • Exercise 15-8: Multiplication
    • Exercise 15-9: Die Comprehensions
    • Exercise 15-10: Practicing with Both Libraries
  • Summary
Chapter 16 - Downloading Data ✔️
  • The CSV File Format
    • Parsing the CSV File Headers
    • Printing the Header and Their Positions
    • Extracting and Reading Data
    • Plotting Data in a Temperature Chart
    • The datetime Module
    • Plotting Dates
    • Plotting a Longer Timeframe
    • Plotting a Second Data Series
    • Shading an Area in the Chart
    • Error Checking
    • Downloading Your Own Data
    • Exercise 16-1: Sitka Rainfall
    • Exercise 16-2: Sitka–Death Valley Comparison
    • Exercise 16-3: San Francisco
    • Exercise 16-4: Automatic Indexes
    • Exercise 16-5: Explore
  • Mapping Global Data Sets: JSON Format
    • Downloading Earthquake Data
    • Examining JSON Data
    • Making a List of All Earthquake
    • Extracting Magnitudes
    • Extracting Location Data
    • Building a World Map
    • A Different Way of Specifying Chart Data
    • Customizing Marker Size
    • Customizing Marker Colors
    • Other Colorscale
    • Adding Hover Text
    • Exercise 16-6: Refactoring
    • Exercise 16-7: Automated Title
    • Exercise 16-8: Recent Earthquakes
    • Exercise 16-9: World Fires
  • Summary
Chapter 17 - Working with APIs ✔️
  • Using a Web API
    • Git and GitHub
    • Requesting Data Using an API Call
    • Installing Requests
    • Processing an API Response
    • Working with the Response Dictionary
    • Summarizing the Top Repositories
    • Monitoring API Rate Limits
  • Visualizing Repositories Using Plotly
    • Refining Plotly Charts
    • Adding Custom Tooltips
    • Adding Clickable Links to Our Graph
    • More About Plotly and the GitHub API
  • The Hacker News API
    • Exercise 17-1: Other Languages
    • Exercise 17-2: Active Discussions
    • Exercise 17-3: Testing python_repos.py
    • Exercise 17-4: Further Exploration
  • Summary

Project 3: Web Applications ☑️

Chapter 18 - Getting Started with DJANGO ✔️
  • Setting Up a Project
    • Writing a Spec
    • Crating a Virtual Environment
    • Activating the Virtual Environment
    • Installing Django
    • Creating a Project in Django
    • Creating the Database
    • Viewing the Project
    • Exercise 18-1: New Projects
  • Starting an App
    • Defining Models
    • Activating Models
    • The Django Admin Site
    • Defining the Entry Model
    • Migrating the Entry Model
    • Registering Entry with the Admin Site
    • The Django Shell
    • Exercise 18-2: Short Entries
    • Exercise 18-3: The Django API
    • Exercise 18-4: Pizzeria
  • Making Pages: The Learning Log Home Page
    • Mapping a URL
    • Writing a View
    • Writing a Template
    • Exercise 18-5: Meal Planner
    • Exercise 18-6: Pizzeria Home Page
  • Building Additional Pages
    • Template Inheritance
    • The Topics Page
    • Individual Topics Pages
    • Exercise 18-7: Template Documentation
    • Exercise 18-8: Pizzeria Pages
  • Summary
Chapter 19 - User Accounts ✔️
  • Allowing Users to Enter Data
    • Adding New Topics
    • Adding New Entries
    • Editing Entries
    • Exercise 19-1: Blog
  • Setting Up User Accounts
    • The user App
    • The Login Page
    • Logging Out
    • The Registration Page
    • Exercise 19-2: Blog Accounts
  • Allowing Users to Own Their Data
    • Restricting Access with @login_required
    • Connecting Data to Certain Users
    • Restricting Topics Access to Appropriate Users
    • Protecting a User’s Topics
    • Protecting the edit_entry Page
    • Associating New Topics with the Current User
    • Exercise 19-3: Refactoring
    • Exercise 19-4: Protecting new_entry
    • Exercise 19-5: Protected Blog
  • Summary
Chapter 20 - Styling and Deploying an APP ✔️
  • Styling Learning Log
    • The django-bootstrap4 App
    • Using Bootstrap to Style Learning Log
    • Modifying base.html
    • Styling the Home Page Using a Jumbotron
    • Styling the Login Page
    • Styling the Topics Page
    • Styling the Entries on the Topic Page
    • Exercise 20-1: Other Forms
    • Exercise 20-2: Stylish Blog
  • Deploying Learning Log
    • Making a Heroku Account
    • Installing the Heroku CLI
    • Installing Required Packages
    • Creating a requirements.txt File
    • Specifying the Python Runtime
    • Modifying settings.py for Heroku
    • Making a Procfile to Start Processes
    • Using Git to Track the Project’s Files
    • Pushing to Heroku
    • Setting Up the Database on Heroku
    • Refining the Heroku Deployment
    • Securing the Live Project
    • Committing and Pushing Changes
    • Setting Environment Variables on Heroku
    • Creating Custom Error Pages
    • Ongoing Development
    • The SECRET_KEY Setting
    • Deleting a Project on Heroku
    • Exercise 20-3: Live Blog
    • Exercise 20-4: More 404s
    • Exercise 20-5: Extended Learning Log
  • Summary 👈

Screenshots

Project 1: Alien Invasion

[!TIP] All images for these game have been generated using AI local model FLUX.1-dev.

aim.png Fig 1 - Alien Invasion Menu.

ai.png Fig 2 - Alien Invasion completed game.

ais.png Fig 3 - Alien Invasion Sideways completed game.

Project 2: Data Visualization

output.png Fig 4 - Random Walk with 50.000 points.

wm4.png Fig 5 - Wildfires Worldwide.

pr2.png Fig 6 - Most-Starred Python Projects on GitHub.

Project 3: Web Applications

login.png Fig 7 - Learning Log web welcome screen.

login1.png Fig 8 - Learning Log web login screen.

c20.png Fig 9 - Learning Log web Entries in Chess Topic.

Resources

Learned

  • The syntax and basics of Python. (Chapters 1:9)
  • Better understanding of Git and GitHub. (All)
  • How to set up and use PyCharm. (All)
  • How to set up and use Jupyter Notebooks. (All)
  • All the syntax and modifiers of the Markdown (.md) files. (All)
  • How to manage Files: .txt, .csv and .json. (Chapter 10)
  • How to manage Exceptions. (Chapter 10)
  • How to manage and create Test cases. (Chapter 11)
  • Basic understanding of Python Built-in libraries. (All)
  • Basic understanding of Pygame library. (Project 1)
  • Basic understanding of MatPlotLib and Plotly libraries. (Project 2)
  • Basic understanding of APIs and how to interact with them. (Project 2)
  • Basic understanding of Django. (Project 3)
  • Basic understanding of SQL and how DDBBs work. (Project 3)
  • Basic understanding of HTML and Bootstrap. (Project 3)
  • Basic understanding of Web Deploying with Heroku. (Project 3)

Conclusions

Python Crash Course by Eric Matthes is an excellent book for those willing to start learning Python, and even better for someone who wants to start learning to code from scratch. On the other hand, this same thing is the only negative point I found about the book, for those who already know how to code in other languages and know the basics, the first chapters and the way the book is structured can be a little slow and tedious.

It's a great way to get started with Python syntax and understand how the language works. As the chapters progress, the content becomes more interesting. I highly recommend completing the three projects in Part 2, as it's a great way to see the scope and flexibility of the language in a very fun and interactive way.

Ultimately, I enjoyed the book and would recommend it to anyone who wants to learn Python.

About

Here I will keep track of all the exercises and contents learned while reading the book "Python Crash Course: A Hands-On, Project-Based Introduction to Programming" by Eric Matthes.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published