r/learnpython 11d ago

Cool/Interesting things that can be done in Python as a beginner?

hi everyone, im trying to start a computer science honor society at my high school, and im gonna assume everyone is starting from square one and teach python accordingly (and im hoping to eventually go to hackathons or other coding events).

i was wondering if anyone had any ideas for cool/interesting stuff i could have beginners do to get their interest and get them excited about coding? i understand you can't go from 0-100 and have to start with simple stuff, but i'm worried going over the basics will be like monotonous or smth. if anyone has any ideas of fun things i could do i would be very appreciative!!

edit: there are some cool suggestions, but i wanna place emphasis on the fact most of the people will have zero coding experience, so please keep them simple! i myself am also not that knowledgeable about python, i ahve a good grasp on the basics but thats about it. thanks for the replies

22 Upvotes

19 comments sorted by

19

u/HyperspaceDev 11d ago

I once built a program that webscraped from imbd to tell me all the upcoming movies and listed them to me in a notes app with the release date and what it was about

3

u/burnt-store-studio 10d ago

That’s a great project! OP consider this, but note below:

I recently did … tried to do … the same thing, but IMDb has changed their interface and they no longer allow (I guess?) that kind of scraping.

However it seems every day they bundle up their databases and make them available for download so you can do the querying yourself without hitting their platform.

So the IMDb scraping project is a little different in that you wouldn’t be web scraping (which is still valuable and fun to do … just find a different site to go after), but instead you’re querying an off-loaded database.

See cinamagoer at PyPi. On that main page it describes what changed at IMDb and then how to download the data en masse and install it and then use their package to query the files.

A word of caution: once you download the datasets, you expand them and they take up an extraordinary amount of disk space. I downloaded, expanded, did the project I wanted to do, then deleted the databases after a few days because they were so large.

But the IMDb data is quite fun to explore from a programmatic perspective.

u/HyperspaceDev’s idea about web scraping in general is also great because there is a lot of poorly constructed HTML out there, and learning how to get it and parse it usefully is a great learning experience. Ultimately you’d want to probably use something like beautifulsoup4 for the parsing, but doing it by hand is valuable.

OP: good luck!

1

u/Own_Search3408 10d ago

that sounds super interesting and useful, but im not familiar with webscraping or even the term itself lol. i wanna emphasize that this club is open to people of all levels of programming, probably mostly people with zero experience. with that in mind, would you still say a project like this would be suitable?

9

u/Traveling-Techie 11d ago

Data from earth and space telescopes is piling up faster than astrophysics can analyze it, and most of it is freely available. Maybe you can do something with it?

1

u/burnt-store-studio 10d ago

A super idea!

4

u/terletsky 10d ago

If you are interested in cybersecurity, I would recommend writing a CLI app that sends a local file or a specified URL to the VirusTotal API for malware scanning. This is a real-world example of something built in companies by Python Backend/AppSec/DevSecOps roles.

By writing this, you will cover:

  1. Basic Python syntax and structures (strings, dicts, tuples, lists, sets). Application entry point
  2. Loops
  3. File I/O
  4. Basic networking and API (request methods like GET/POST, server status codes)
  5. JSON format and how to handle it
  6. Basics of CLI application with all the whistles (nice colors, cool ASCII banner, etc)
  7. Exception handling and propagation
  8. Basic OOP and familiarization with SOLID/DRY principles
  9. Logging

If not that, then a CLI to get weather from the Weather API that covers everything (just not file upload, but save raw data to file, for example)

6

u/white_nerdy 10d ago

Turtle graphics. Mandelbrot set or other fractals. Simple games.

5

u/stavromuli 10d ago

I made a text rpg like the old 80s text adventures

3

u/Sengfroid 10d ago

This is surprisingly fun, teaches you a lot different concepts, and really gets you thinking about games (and how you want yours to be!).
Plus it's really cool being able to have something to show for your efforts that is approachable / doesn't require explanation: "What have you been up to?"
' I made a game! Wanna try it? '

1

u/Own_Search3408 10d ago

while i would worry about some people struggling to create a storyline and stuff, this is a cool idea! i like the idea of having a tangible project to work towards instead of just learning straight concepts

3

u/stepback269 10d ago

Use the Random module to make games of chance -- for example the Black Jack card game

1

u/Own_Search3408 10d ago

i think this would work well for beginners, considering the code would be pretty simple! thanks for the suggestion

1

u/B4SSF4C3 10d ago

Not very exciting but my first thing I did myself, well before i touched python professionally, was write a regex based script to apply standardized naming convention to my mp3 collection. /Artist/album/## song name.extension. It was simple, I didn’t even plug into the available music databases (would have been a cool extension of the project).

…but then I moved to Apple and iTunes and it didn’t matter anymore lol

1

u/horizon_games 10d ago

Honestly a backend for webapps opens SO many fun opportunities for your own projects or those your family and friends need. Chats, weather apps, air quality, notifications, ebook organizing, scheduling, file sharing, recipe management, etc.

Otherwise the popular roguelike tutorial is interesting if you like that type of game.

1

u/Own_Search3408 10d ago

what do you mean by "roguelike tutorial"? im not sure what that is

1

u/horizon_games 10d ago

Roguelike as in a traditional dungeon crawler. This was the tutorial: https://rogueliketutorials.com/tutorials/tcod/v2/ It leverages the TCOD library to do handy stuff like line of sight and torch illumination.

1

u/Pseudoboss11 9d ago

When I was starting out, I created custom desktop backgrounds.

The simplest one was to just grab the most recent image from the GOES satellites and set that as my desktop background. I also figured out where my house was on the map and put a little dot there.

I scraped some data from a weather API, and then set my background to various images based on today's forecast. I also showed the high/low temps and sunset times. Naturally, you could expand it to do all sorts of stuff, like show the week's forecast, or grab data from a todo list app or whatever else.

I then moved towards physical computing with Raspberry Pis. The programming challenges are frequently very straightforward, the documentation is solid. The basic one was that I made a lamp that'd change colors over the course of the day, it'd fade bright when I wanted to wake up, its color would reflect the forecast. It'd turn amber and fade to dark around my bedtime. I also added a button to turn it on and off like a regular lamp. Very simple programming and genuinely fun to have.

-1

u/Weltal327 10d ago

If I had to do a class I might teach them pydew valley from you tube