Course materials and handouts for #100DaysOfCode in Python course

Overview

#100DaysOfCode with Python course

Binder

Visit the course page

Course details page: talkpython.fm/100days

Course Summary

#100DaysOfCode in Python is your perfect companion to take the 100 days of code challenge and be successful. This course is 1-part video lesson, 2-parts guided projects. You will be amazed at how many Python technologies and libraries you learn on this journey. Join the course and get started.

What's this course about and how is it different?

100 days of code is not just about the commitment. The true power and effectiveness is in having a guide and pursuing the "right-sized" projects. That’s why we have 33 deeply practical projects. Each paired with 20-40 minute lessons at the beginning of the project.

Just a small sampling of the projects you’ll work on include:

  • Understanding basic Python data structures
  • Searching large text corpuses with regular expressions
  • Consume HTTP services including the Twitter and GitHub APIs among others
  • Visual data with graphs using plotly
  • Convert your Python CLI (command line interface) app to a GUI application
  • Program against Excel in Python to automate your spreadsheet data
  • Build a text-based game and learn object-oriented programming
  • Automate multi-step web processes using selenium
  • Test your code with pytest and unit testing
  • Create a basic web app with Flask
  • Create a JSON-based online game service using Flask too
  • And 22 more projects!

View the full course outline.

Who is this course for?

This course is for anyone who wants to immerse themselves in Python for 100 days worth of learning and hands-on projects.

We don’t start from absolute zero in terms of programming but if you are new to Python we have a language appendix and we start somewhat slow. By the end of the course, we get into intermediate-level Python projects.

Course flow and the 33 projects

Course flow

We have broken the 100 days worth of coding into 33 3-day segments. As you can see, the first day is largely learning the new topics (HTTP APIs, web scraping, databases, etc.). The following two days have some guidance but is much more hands-on than the first day.

Get the full course details

Visit the full course page for all the details: talkpython.fm/100days

Comments
  •  video 'hello test world'

    video 'hello test world'

    This video was very disappointing . Your explanation of the command line arguments was extremely superficial. I cannot get it to work. I am starting to regret buying this course. can you point to a better, more detailed explanation of how to run pytest. Thanks.

    opened by elephantarms 10
  • Day 55-57 results in Type Error for __init__

    Day 55-57 results in Type Error for __init__

    Hi.

    When I execute program.py for the Day 55-57 example I run into the following Type Error:

    File "C:\Users\salro\PycharmProjects\100daysofcode-with-python-course\venv\lib\site-packages\uplink\hooks.py", line 103, in handle_response response = hook.handle_response(consumer, response) File "C:\Users\salro\PycharmProjects\100daysofcode-with-python-course\venv\lib\site-packages\uplink\hooks.py", line 20, in wrapper return hook(*args, **kwargs) File "C:\Users\salro\PycharmProjects\100daysofcode-with-python-course\venv\lib\site-packages\uplink\returns.py", line 39, in call return self._strategy(*args, **kwargs) TypeError: init() takes 1 positional argument but 2 were given

    I tried multiple angles I am familiar with but nothing has worked so far.

    opened by salro 6
  • day 04-06 encoding problem on file open

    day 04-06 encoding problem on file open

    There are some extended ascii characters in the csv download. It seems jupyter doesn't mind, but if you're doing this on IDLE or some other thing with CPython, it balks on reading the file, starting at character 535. This can be avoided by adding """encoding='utf-8'""" to the open statement.

    opened by aseelye 6
  • The sample json data file in day 40-42 is not in json format

    The sample json data file in day 40-42 is not in json format

    Hi Guys I was trying to load the 100daysofcode-with-python-course/days/40-42-json-data/code/mount-data.txt using json.load() module and I'm getting the error 'json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes:'. As per stackoverflow article https://stackoverflow.com/questions/39491420/python-jsonexpecting-property-name-enclosed-in-double-quotes, the format is not correct. Can you confirm pls?

    • Vipin
    opened by vipinreyo 4
  • day 2 error

    day 2 error

    Hello,

    I am trying to figure out what went wrong with my code for the day 2 challenge. I am pretty sure the result is correct. Which for challenge one is 2017. 07.08 and 505 days for challenge 2.

    Challenge :

    1. We kicked off our 100 Days of Code project on March 30th, 2017. Calculate what date we finished the full 100 days!
    2. PyBites was founded on the 19th of December 2016. We're attending our first PyCon together on May 8th, 2018. Can you calculate how many days from PyBites' inception to our first PyCon meet up?

    My code :

    from datetime import date, timedelta

    start_100days = date(2017, 3, 30) pybites_founded = date(2016, 12, 19) pycon_date = date(2018, 5, 8)

    def get_hundred_days_end_date(): """Return a string of yyyy-mm-dd""" end_date=timedelta(days=100) finish_day = start_100days + end_date

    print(str(finish_day))
    

    def get_days_between_pb_start_first_joint_pycon(): """Return the int number of days""" in_between_days = pycon_date - pybites_founded print(str(in_between_days))

    get_hundred_days_end_date() get_days_between_pb_start_first_joint_pycon()

    error return :

    ============================= test session starts ============================== platform linux -- Python 3.8.13, pytest-5.4.2, py-1.8.1, pluggy-0.13.1 rootdir: /tmp plugins: asyncio-0.12.0 2017-07-08 505 days, 0:00:00 collected 2 items

    ../../tmp/test_calc_dts.py 2017-07-08 F505 days, 0:00:00 F

    =================================== FAILURES =================================== ________________________ test_get_hundred_days_end_date ________________________

    def test_get_hundred_days_end_date():
    
      assert get_hundred_days_end_date() == '2017-07-08'
    

    E AssertionError: assert None == '2017-07-08' E + where None = get_hundred_days_end_date()

    /tmp/test_calc_dts.py:6: AssertionError _______________________ test_get_days_till_pycon_meetup ________________________

    def test_get_days_till_pycon_meetup():
    
      assert get_days_between_pb_start_first_joint_pycon() == 505
    

    E assert None == 505 E + where None = get_days_between_pb_start_first_joint_pycon()

    /tmp/test_calc_dts.py:10: AssertionError =========================== short test summary info ============================ FAILED ../../tmp/test_calc_dts.py::test_get_hundred_days_end_date - Assertion... FAILED ../../tmp/test_calc_dts.py::test_get_days_till_pycon_meetup - assert N... ============================== 2 failed in 0.07s ===============================

    opened by II-Tom-Cat-II 3
  • Day 55-57 Example - write_post()

    Day 55-57 Example - write_post()

    Within my write_post() implementation, the call resp.json() in the print() returns a list of the previous (in my case) three published items but not the new post that the write_post() was to create. I ran this the original project code using both uplink version 0.4.0 and uplink version 0.9.1 with the same results. I have double checked the source code with the code posted in github. The console output is provided below. Any assistance is appreciated.

    C:\Users\rbern\PycharmProjects\ScrapyPractice2\venv\Scripts\python.exe C:\Users\rbern\AppData\Local\JetBrains\Toolbox\apps\PyCharm-P\ch-0\201.6668.115\plugins\python\helpers\pydev\pydevd.py --multiproc --qt-support=auto --client 127.0.0.1 --port 52869 --file C:/Users/rbern/Desktop/course100days/days/55-57-uplink/demo/program.py pydev debugger: process 8784 is connecting

    Connected to pydev debugger (build 201.6668.115) What would you like to do next? [w]rite a post or [r]ead them?

    1. [1,231 views] Easy Breezy Python HTTP Clients
    2. [10 views] Introducing Requests for Python
    3. [100 views] PyCharm, the Best IDE for Python

    Which number to view? Details for selected_post: c7081102-e2c9-41ec-8b79-adc1f3469d91 Title: Easy Breezy Python HTTP Clients Written: 2017-02-14 Content: So maybe you've heard about Requests...

    What would you like to do next? [w]rite a post or [r]ead them?Title: Body contents: view count (int): Traceback (most recent call last): File "C:\Users\rbern\AppData\Local\JetBrains\Toolbox\apps\PyCharm-P\ch-0\201.6668.115\plugins\python\helpers\pydev\pydevd.py", line 1438, in _exec pydev_imports.execfile(file, globals, locals) # execute the script File "C:\Users\rbern\AppData\Local\JetBrains\Toolbox\apps\PyCharm-P\ch-0\201.6668.115\plugins\python\helpers\pydev_pydev_imps_pydev_execfile.py", line 18, in execfile exec(compile(contents+"\n", file, 'exec'), glob, loc) File "C:/Users/rbern/Desktop/course100days/days/55-57-uplink/demo/program.py", line 58, in main() File "C:/Users/rbern/Desktop/course100days/days/55-57-uplink/demo/program.py", line 12, in main write_post() File "C:/Users/rbern/Desktop/course100days/days/55-57-uplink/demo/program.py", line 53, in write_post print("Created new post successfully: {}".format(resp.json().get('id'))) AttributeError: 'list' object has no attribute 'get'

    Process finished with exit code -1

    opened by rfbernstein 3
  • Days 58-60 Twitter

    Days 58-60 Twitter

    Might need to update the md or video for this set of days.

    apps.twitter.com is being sunsetted and moved to https://developer.twitter.com/en/apps

    There is also an approval process (maybe there always was, but there is one now)

    opened by CodeitchNY 3
  • Missing README for days 04-06

    Missing README for days 04-06

    G'day Michael and team,

    There is no README file for days 04-06. I managed to navigate to the exercise eventually from the link in the video, but was under the impression that all days would have README instructions.

    Cheers,

    Conor

    opened by conorcunningham 3
  • urlretrieve function

    urlretrieve function

    This function can't use anymore since is removed from python.

    How can I handle this problem? Are there any function can be replaced with this function?

    ** Days 4-6

    opened by controlmachine 3
  • Itertools traffic light task

    Itertools traffic light task

    Hi, I think there's some missing info in the itertools unit readme. It says to try to complete the task before watching the video, but the only description of the task in the readme is "create a script that simulates traffic lights" - it's not obvious what it is.

    opened by thick-hollins 3
  • Day38 - bad data in csv file

    Day38 - bad data in csv file

    Hello,

    On Day 38 when loading the Thanksgiving data from the file, there is a error that occurs:

    UnicodeDecodeError:

    'utf-8' codec can't decode byte 0xed in position 3599: invalid continuation byte

    The file gets processed until the record with 'RespondentID':'4335955206' then it errors out.

    Also when opening the csv file in PyCharm I get "File was loaded in the wrong encoding: 'UTF-8'"

    screen shot 2018-04-27 at 7 08 20 am

    The error goes away when removing the line with RspondentID: '4335955152'

    opened by alt3red 3
  • Packt Publishing website updated

    Packt Publishing website updated

    Hi,

    the website packtpub.com has been updated, the code in the notebook does not work any more. I found the field for the user name in the code inspector but was not able to find the right element qualifier to address it. The 2nd example with the pybites banner generator did of course not work either because Bob did not reveal his password. Can't you find (or create) a website that is not changed frequently and easily accessible for everyone?

    Cheers, Andreas

    opened by aojanzen 4
  • packtpub 'find_element_by_name' doesn't work

    packtpub 'find_element_by_name' doesn't work

    Hello, the find_element_by_name as described in the tutorial does not work for this site. Additionally it looks like they've updated their website and don't have the ebook page that is used in the walkthrough. Could this be updated/looked into?

    opened by jbencivengo 1
  • Add section about setting things up

    Add section about setting things up

    It would be good for any beginner to have lesson about setting a enviromment virtualenv and other things. If this would be good for you, I will be happy to do that.

    opened by TomasRoj 2
  • parse error

    parse error

    The default code throws an error and below code fixes it

    def get_movies_by_director(): directors = defaultdict(list) with open(MOVIE_DATA, encoding='utf-8') as f: for line in csv.DictReader(f): try: director = line['director_name'] movie = line['movie_title'].replace('\xa0', '') if line['title_year']: year = int(line['title_year']) else: year = 0 if line['imdb_score']:
    score = float(line['imdb_score']) else: score = 0 except ValueError: continue

            m = Movie(title=movie, year=year, score=score)
            directors[director].append(m)
    return directors
    
    opened by prasadseemakurthi 8
Coursera learning course Python the basics. Programming exercises and tasks

HSE_Python_the_basics Welcome to BAsics programming Python! You’re joining thousands of learners currently enrolled in the course. I'm excited to have

PavelRyzhkov 0 Jan 5, 2022
An introduction course for Python provided by VetsInTech

Introduction to Python This is an introduction course for Python provided by VetsInTech. For every "boot camp", there usually is a pre-req, but becaus

Vets In Tech 2 Dec 2, 2021
Software engineering course project. Secondhand trading system.

PigeonSale Software engineering course project. Secondhand trading system. Documentation API doumenatation: list of APIs Backend documentation: notes

Harry Lee 1 Sep 1, 2022
Members: Thomas Longuevergne Program: Network Security Course: 1DV501 Date of submission: 2021-11-02

Mini-project report Members: Thomas Longuevergne Program: Network Security Course: 1DV501 Date of submission: 2021-11-02 Introduction This project was

null 1 Nov 8, 2021
Material for the ros2 crash course

Material for the ros2 crash course

Emmanuel Dean 1 Jan 22, 2022
Portfolio project for Code Institute Full Stack software development course.

Comic Sales tracker This project is the third milestone project for the Code Institute Diploma in Full Stack Software Development. You can see the fin

null 1 Jan 10, 2022
Contains the assignments from the course Building a Modern Computer from First Principles: From Nand to Tetris.

Contains the assignments from the course Building a Modern Computer from First Principles: From Nand to Tetris.

Matheus Rodrigues 1 Jan 20, 2022
A python package to avoid writing and maintaining duplicated python docstrings.

docstring-inheritance is a python package to avoid writing and maintaining duplicated python docstrings.

Antoine Dechaume 15 Dec 7, 2022
A comprehensive and FREE Online Python Development tutorial going step-by-step into the world of Python.

FREE Reverse Engineering Self-Study Course HERE Fundamental Python The book and code repo for the FREE Fundamental Python book by Kevin Thomas. FREE B

Kevin Thomas 7 Mar 19, 2022
A collection of simple python mini projects to enhance your python skills

A collection of simple python mini projects to enhance your python skills

PYTHON WORLD 12.1k Jan 5, 2023
Python Eacc is a minimalist but flexible Lexer/Parser tool in Python.

Python Eacc is a parsing tool it implements a flexible lexer and a straightforward approach to analyze documents.

Iury de oliveira gomes figueiredo 60 Nov 16, 2022
Repository for learning Python (Python Tutorial)

Repository for learning Python (Python Tutorial) Languages and Tools ?? Overview ?? Repository for learning Python (Python Tutorial) Languages and Too

Swiftman 2 Aug 22, 2022
advance python series: Data Classes, OOPs, python

Working With Pydantic - Built-in Data Process ========================== Normal way to process data (reading json file): the normal princiople, it's f

Phung Hưng Binh 1 Nov 8, 2021
A simple USI Shogi Engine written in python using python-shogi.

Revengeshogi My attempt at creating a USI Shogi Engine in python using python-shogi. Current State of Engine Currently only generating random moves us

null 1 Jan 6, 2022
Python-slp - Side Ledger Protocol With Python

Side Ledger Protocol Run python-slp node First install Mongo DB and run the mong

Solar 3 Mar 2, 2022
Python-samples - This project is to help someone need some practices when learning python language

Python-samples - This project is to help someone need some practices when learning python language

Gui Chen 0 Feb 14, 2022
Valentine-with-Python - A Python program generates an animation of a heart with cool texts of your loved one

Valentine with Python Valentines with Python is a mini fun project I have coded.

Niraj Tiwari 4 Dec 31, 2022
🏆 A ranked list of awesome python developer tools and libraries. Updated weekly.

Best-of Python Developer Tools ?? A ranked list of awesome python developer tools and libraries. Updated weekly. This curated list contains 250 awesom

Machine Learning Tooling 646 Jan 7, 2023
API spec validator and OpenAPI document generator for Python web frameworks.

API spec validator and OpenAPI document generator for Python web frameworks.

1001001 249 Dec 22, 2022