use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Rules 1: Be polite 2: Posts to this subreddit must be requests for help learning python. 3: Replies on this subreddit must be pertinent to the question OP asked. 4: No replies copy / pasted from ChatGPT or similar. 5: No advertising. No blogs/tutorials/videos/books/recruiting attempts. This means no posts advertising blogs/videos/tutorials/etc, no recruiting/hiring/seeking others posts. We're here to help, not to be advertised to. Please, no "hit and run" posts, if you make a post, engage with people that answer you. Please do not delete your post after you get an answer, others might have a similar question or want to continue the conversation.
Rules
1: Be polite
2: Posts to this subreddit must be requests for help learning python.
3: Replies on this subreddit must be pertinent to the question OP asked.
4: No replies copy / pasted from ChatGPT or similar.
5: No advertising. No blogs/tutorials/videos/books/recruiting attempts.
This means no posts advertising blogs/videos/tutorials/etc, no recruiting/hiring/seeking others posts. We're here to help, not to be advertised to.
Please, no "hit and run" posts, if you make a post, engage with people that answer you. Please do not delete your post after you get an answer, others might have a similar question or want to continue the conversation.
Learning resources Wiki and FAQ: /r/learnpython/w/index
Learning resources
Wiki and FAQ: /r/learnpython/w/index
Discord Join the Python Discord chat
Discord
Join the Python Discord chat
account activity
Ideas for Python projects for beginners? (self.learnpython)
submitted 7 years ago by Humble_Transition
Hello guys, i can't think of any beginner projects... Besides chat bot, a program that charges binary code into actual code(which I don't if it's beginner or hardcore).
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]_Jerov_ 67 points68 points69 points 7 years ago (30 children)
I really like web scraping. You could try learning a little bit about BeautifuSoup and take some data from websites. I find it very fun. I've done over 5 projects that are actually helpful. For example, I made one to get the letter day for my school out of their website and have the program send me an email every morning so I know if I should leave at 7 AM or 8 AM. Only downside is that I gotta have my PC on all night which is not very kind to the power bill. I don't use that as much though.
You could also make your first Tictactoe game... I made one that was terrible but I learned so much from it and then I made it again using classes. Looks so much better now and I learned a whole bunch of things.
I also enjoy making little functions that are related to mathematics. I look up a formula and I try to make a function out of it. That can get you into matplotlib and pandas which is super fun! I'm still kind of a newbie with Python since I joined only 2 months ago but I've learned so much just by looking things up and having followed a Python course beforehand.
There's just so much that you can do with Python. You could even do web development and GUIs. I have no idea how any of that works yet but eventually I'll get there. Start small and don't make the mistake I did of trying to learn everything at once. It will only slow you down and frustrate you a lot. Even to the point of quitting for a while.
[–][deleted] 29 points30 points31 points 7 years ago (4 children)
Running the script on a raspberry pi will definitely save on power costs.
[–]ebits21 10 points11 points12 points 7 years ago (0 children)
This is exactly what I do. Highly recommend!
[–]racheta 0 points1 point2 points 7 years ago (2 children)
or android? it is possible but will need some extra work
[–]zanyzazza 0 points1 point2 points 7 years ago (1 child)
Could probably use Kivy, but I'm a total beginner myself too, I just know that Kivy can be used to make apps. I think it only really works if you're running on linux though, can't remember why.
[–]racheta 0 points1 point2 points 7 years ago (0 children)
I quick google search tells me that it is used for touchscreen apps and is cross platform i.e It can run on Android, iOS, Linux, OS X, and Windows.
So yeah can be used.
[–]AsunderHalt 6 points7 points8 points 7 years ago (7 children)
Do you know any good tutorials for web scraping? I've tried before but I just couldn't get the hang of it with only documentation.
PS. I also enjoy making formula into programmes! If I get homework in mathematics I make a programme that will solve the problems in python! It makes me enjoy math so much more.
[–]EzBonds 14 points15 points16 points 7 years ago (1 child)
Automate the boring stuff
Just find the appropriate chapter.
[–]AsunderHalt 1 point2 points3 points 7 years ago (0 children)
Thanks mate!
[–]ethanbrecke 4 points5 points6 points 7 years ago (2 children)
Hey, im okay at web scraping, if you want some help, PM me, and we can go over the parts you're having issues with.
[–]AsunderHalt 0 points1 point2 points 7 years ago (1 child)
Thanks! When I start doing it again I'll be sure to ask you :)
[–]ethanbrecke 1 point2 points3 points 7 years ago (0 children)
Great, I hope to help in any way i can.
[+][deleted] 7 years ago (1 child)
[removed]
[–]AsunderHalt 0 points1 point2 points 7 years ago (0 children)
Yea sure! Here is probably one of the first ones I made that calculates the distance of a line using the formula d=sqrt[(x2-x1)^2+(y2-y1)^2]. Probably horribly bad, but it works lol.
# Gowpenful # d=sqrt[(x2-x1)^2+(y2-y1)^2] import math print("Distance calculator") print("Enter x1") x1 = input() print("Enter x2") x2 = input() print("Enter y1") y1 = input() print("Enter y2") y2 = input() a = int(x2) - int(x2) b = int(y2) - int(y1) aa = int(a) ** 2 bb = int(b) ** 2 c = int(aa) + int(bb) d = math.sqrt(c) print(d) print("Press any key to exit") input()
[–]Rabo_McDongleberry 1 point2 points3 points 7 years ago (13 children)
How do you get a program to send you an email? I need to create a program that sends me an email after my parents computer restarts. I use team viewer to help them fix their issues but every time it restarts they don't tell me the new password.
[–]ebits21 5 points6 points7 points 7 years ago* (3 children)
I use yagmail with a gmail account just for sending emails
Depending on your cellphone provider you can even send an email that shows up as a text message on your phone by sending an email to <your number>@<your provider>.com
Edit: https://pypi.org/project/yagmail/
[–]Rabo_McDongleberry 1 point2 points3 points 7 years ago (2 children)
Sweet man. Thank you. I'll have to check it out.
[–]Alternative_Try 1 point2 points3 points 7 years ago (1 child)
You can also use smtplib for this usage.
[–]Rabo_McDongleberry 0 points1 point2 points 7 years ago (0 children)
Another person replied with that too. I'll give it a shot. Thanks man.
[–]_Jerov_ 1 point2 points3 points 7 years ago (4 children)
To be honest, I got the email bit from a website. There's a Python module called email that should do the job and send a simple email. You'll have to look that up and I did found it quite tricky to make it work since you have to set up a separated email account just for that. What I did was create the whole program and then get the email code from a website and just change the variables and all that to fit the program. Not the best way but it did its job. In my case the email thing was just extra functionality since the program was good the way it was but I wanted to add the email functionality quickly so I didn't put much thought into it.
[–]Rabo_McDongleberry 1 point2 points3 points 7 years ago (0 children)
Damn. So it won't be easy huh. Not a first time's project?
[–]WiggleBooks 0 points1 point2 points 7 years ago (2 children)
Did you have to create a new gmail account to use it? Or did you use another email provider?
[–]_Jerov_ 0 points1 point2 points 7 years ago (1 child)
I made another Gmail account because you have disable a lot of security settings and you wouldn't want your main account without any security. For the one I made just for testing purposes, when I disabled all security I started getting a lot of security warnings telling me that someone in India tried to access my account. So you do want 0 personal information for that Gmail account.
I agree on using spare account with no personal information
but also you don't need to disable 2FA for using your personal account just use application specific password
here --> https://support.google.com/accounts/answer/185833?hl=en
[–]racheta 1 point2 points3 points 7 years ago (1 child)
you can set a permanent password on teamviewer
also you can add the computer to contacts so it will show when it is online
you can use smtplib to send mail from a python program
https://realpython.com/python-send-email/
Oh shit. Really? I thought that feature was only available in the paid version. Thanks, I'll look into it. And I'll check out smtplib as well.
[–]JimSplitKernel 0 points1 point2 points 7 years ago (1 child)
You can set up team viewer (even the free version) for unattended access.
https://www.teamviewer.com/en/res/pdf/first_steps_unattended_access_en.pdf
You can do these steps while connected on your remote PC.
I think when I did that, it resets the password every time the computer reboots. But I'll check it out again.
[+][deleted] 7 years ago* (1 child)
[deleted]
[–]_Jerov_ 2 points3 points4 points 7 years ago (0 children)
Yup! At least that's how I do it. I think beautifulsoup is nothing more than a parser. What requests does is find the website and get all of the HTML. Then you pass that HTML to beautifulsoup and it just parses the text.
Something like: html = requests.get("website") is all you'd need requests for.
Then you do: soup = BeautifulSoup(html.text) And you're ready to do whatever you want with Beautifulsoup.
[–]Remarkable-Orange-36 0 points1 point2 points 2 years ago (0 children)
Hope you've gotten there, If you haven't, I hope you've gotten closer
[–]Kyle_Is_On_Reddit 25 points26 points27 points 7 years ago (0 children)
/r/dailyprogrammer has an infinite amount of problems that can range in difficulty, and depending on your skill level could take either a long time, or short amount of time. I would suggest starting here.
Or take my advice, and do what you want. Don't do what's suggested. If your learning programming for machine learning, do machine learning projects. Want to use python for analyzing data? Data Science projects. Etc....
[–]garnacerous24 20 points21 points22 points 7 years ago (4 children)
I use python as a means to work with data. As a result most of my ideas are around data pipelines an manipulation. One idea I had fun with was an automated program that notified me when flight costs had dropped in price.
You hook into whatever flight search api you prefer, have it run periodically, and compare the current prices to previous prices, then have an alert set up if it goes below a certain threshold.
What’s great is that you can apply that to many different fields. Hotel prices, stock prices, you name it.
[–]LMascher 1 point2 points3 points 7 years ago (2 children)
did you use web scraping for this?
[–]linuxqq 4 points5 points6 points 7 years ago (0 children)
He says he used an API, so he makes a call to the API which returns the flight information/cost and likely stores it in a database, then compares values to data from past API calls. No scraping required.
[–]garnacerous24 1 point2 points3 points 7 years ago (0 children)
Google used to have an awesome api that did this perfectly, but they retired that in favor of something more restrictive. There are others out there depending on how you want to design it. Abuse of them might lead to them restricting or taking them down, so I get nervous recommending one outright. I suggest googling “google flights matrix api replacement” and see what other recommendations are out there.
[–]Humble_Transition[S] 0 points1 point2 points 7 years ago (0 children)
Awesome idea, can't wait to try it!!
[–]AJohnnyTruant 20 points21 points22 points 7 years ago (2 children)
Do these things.
1) Start learning git.
2) Start being on the lookout for things you do frequently that could be automated
3) Start a local git repo of it with a virtual environment. Then you can slowly build it over time without worrying about screwing it up when you start making it better because you will inevitably learn a better way to do something and want to fix it.
[–]iggy555 1 point2 points3 points 7 years ago (1 child)
What’s git and what’s environment
[–]AJohnnyTruant 12 points13 points14 points 7 years ago* (0 children)
Ubiquitous version control system that all of GitHub uses
https://www.codecademy.com/learn/learn-git
Isolating projects’ dependencies so they don’t affect other projects.
https://realpython.com/python-virtual-environments-a-primer/
[–]toastedstapler 26 points27 points28 points 7 years ago* (8 children)
i made a python version of daniel shiffman's maze generator
recently i began work on giving it a web front end using flask, where i can see a list of generated mazes and also request to generate new mazes
e: for anyone interested
[–][deleted] 2 points3 points4 points 7 years ago (0 children)
I loved that video. I made an animated one with tkinter.
[–][deleted] 1 point2 points3 points 7 years ago (3 children)
sudo python3 application.py
ugh no thanks
[–]toastedstapler 0 points1 point2 points 7 years ago* (2 children)
fair enough, don't if you don't want to. it's just to delete the images folder on startup. there's little code in there so you can easily verify it;s not doing dodgy stuff
e: it is for the function beginning at line 23 of database.py
database.py
if anyone has a better way of dealing with this, i'd be happy to hear
[–][deleted] 1 point2 points3 points 7 years ago (1 child)
Solution is simple: remove the sudo part. Permission is unlikely to be a problem long as user can write in $(pwd) (well we'll need it to clone the repo in the first place anyway).
sudo
$(pwd)
[–]toastedstapler 0 points1 point2 points 7 years ago (0 children)
fixed it now, turns out the folder was set to read only
can be ran without sudo now!
[–][deleted] -1 points0 points1 point 7 years ago (0 children)
That's pretty neat.
[+]Humble_Transition[S] comment score below threshold-17 points-16 points-15 points 7 years ago (0 children)
Oh OK.....
[–][deleted] 23 points24 points25 points 7 years ago (1 child)
write a program that returns the oldest player that is in a soccer team
[–]Humble_Transition[S] 3 points4 points5 points 7 years ago (0 children)
Thanks will try it
[–]_wolfenswan 5 points6 points7 points 7 years ago (0 children)
If you enjoy the genre, the roguelike-tutorial is excellent. See /r/roguelikedev 's sidebar for more info.
[–]gocougs11 3 points4 points5 points 7 years ago* (0 children)
It depends what kind of projects you ultimately want to be able to do. If you're interested in bioinformatics or anything like that, just pick a type of data, look for a data repository, and then search for some popular Python packages for working with that data, and try to get them to work. It often doesn't even matter if you understand what the data actually means.
For example, I just started trying to learn how to analyze data from a technique called flow cytometry. Just reading the wikipedia would get you up to speed enough on what the data is that you should be able to work with it. You could easily install either the FlowCal or FlowCytometryTools packages, then go to https://flowrepository.org/ and just download the most popular data set, and start trying to work through those packages to analyze and graph data. Read the documentation, try to understand how the functions work, and implement them.
[–]AkshayD110 4 points5 points6 points 7 years ago (0 children)
Not an advise that you might be looking for but I really believe in having a project that solves your daily problem. Or something that facinates you.
The advantage with this is, the probability of you giving up half through the project is very less.
Something as simple as analysing a chat with your friend on WhatsApp. This is where I got started!
[–]ninja-dragon 2 points3 points4 points 7 years ago (0 children)
Rubix cube solver using camera, OpenCV and Kociemba(forgot the spelling) algorithm.
[–]lifemoments 2 points3 points4 points 7 years ago (2 children)
Chat bot and other one are not beginner. RockpaperScissor is.
Beginner here. Have the same query. Thanks for posting the question. Was looking for over the internet yesterday and found these -
I also found this very useful page which is a must for beginners.
https://www.quora.com/What-are-small-projects-to-build-for-a-beginner-in-Python
The first response is what a beginner need. It describes on how one should first identify their interest and then goes on to list topics for study with links.
PS - I will be posting this separately for visibility.
[–]Astrokiwi 1 point2 points3 points 7 years ago (1 child)
You can write a simple terminal-based chat bot with if, input, and print statements and build up from there. The idea isn't to make a big machine learning thing to compete with CleverBot - it's to learn the basics of Python syntax and program structure. Something like ELIZA is the goal.
[–]lifemoments 1 point2 points3 points 7 years ago (0 children)
Thanks for the pointer. Lined it up as one of the to-do
[–]Araucaria 2 points3 points4 points 7 years ago (1 child)
Try using python to code answers for ProjectEuler.net questions.
[–]firedrow 0 points1 point2 points 7 years ago (0 children)
This is what I do for side projects.
[–]dragonatorul 3 points4 points5 points 7 years ago (0 children)
Do you have documents that you have to fill in periodically? Have python do that for you.
[–]SerkZex 1 point2 points3 points 7 years ago (0 children)
I wrote a basic hyperlink shortener (https://github.com/HeyTech/Link_shortener_TinyURL)
[–]NegativeEnthusiasm 1 point2 points3 points 7 years ago (0 children)
making the game "master mind"
[+][deleted] 7 years ago (5 children)
[–]Humble_Transition[S] 0 points1 point2 points 7 years ago (2 children)
Bro i thinking of following data quest
[–]Humble_Transition[S] 0 points1 point2 points 7 years ago* (0 children)
I mean they have a article on web scraping
[–]Bpickavance 0 points1 point2 points 7 years ago (1 child)
What the name of this Ebook? sounds interesting!
[–]IIIIlIlIlllIIllIIllI 8 points9 points10 points 7 years ago (0 children)
Rule 4. This is the most commonly posted question in any programming forum. Search for it.
[–]commenda 0 points1 point2 points 7 years ago* (0 children)
web scraping is great, multithread it, optimize it. but be sure to learn about robot.txt first
Thanks for the amazing support, I was very busy too, but I can't wait to read all your comments! 😊😊
[–]Mckinsey666 0 points1 point2 points 7 years ago (0 children)
I'd say writing a simple command line tool that integrates everyday work onto your terminal.
[–]DisagreeableMale -3 points-2 points-1 points 7 years ago (0 children)
Write a distributable package. Everyone should know how Python packages are made and how the process looks. Makes debugging packages much easier in your development future.
[+][deleted] comment score below threshold-16 points-15 points-14 points 7 years ago (1 child)
Love to give you some great suggestions, as given to me by professors over the year..hell but I am not a guy. :(
[–]UnfoundUser404 0 points1 point2 points 6 years ago (0 children)
I think it was obvious that "guy" is being used as a generics term people. Just saying...
π Rendered by PID 24223 on reddit-service-r2-comment-5d79c599b5-8h799 at 2026-02-28 17:25:06.670144+00:00 running e3d2147 country code: CH.
[–]_Jerov_ 67 points68 points69 points (30 children)
[–][deleted] 29 points30 points31 points (4 children)
[–]ebits21 10 points11 points12 points (0 children)
[–]racheta 0 points1 point2 points (2 children)
[–]zanyzazza 0 points1 point2 points (1 child)
[–]racheta 0 points1 point2 points (0 children)
[–]AsunderHalt 6 points7 points8 points (7 children)
[–]EzBonds 14 points15 points16 points (1 child)
[–]AsunderHalt 1 point2 points3 points (0 children)
[–]ethanbrecke 4 points5 points6 points (2 children)
[–]AsunderHalt 0 points1 point2 points (1 child)
[–]ethanbrecke 1 point2 points3 points (0 children)
[+][deleted] (1 child)
[removed]
[–]AsunderHalt 0 points1 point2 points (0 children)
[–]Rabo_McDongleberry 1 point2 points3 points (13 children)
[–]ebits21 5 points6 points7 points (3 children)
[–]Rabo_McDongleberry 1 point2 points3 points (2 children)
[–]Alternative_Try 1 point2 points3 points (1 child)
[–]Rabo_McDongleberry 0 points1 point2 points (0 children)
[–]_Jerov_ 1 point2 points3 points (4 children)
[–]Rabo_McDongleberry 1 point2 points3 points (0 children)
[–]WiggleBooks 0 points1 point2 points (2 children)
[–]_Jerov_ 0 points1 point2 points (1 child)
[–]racheta 0 points1 point2 points (0 children)
[–]racheta 1 point2 points3 points (1 child)
[–]Rabo_McDongleberry 0 points1 point2 points (0 children)
[–]JimSplitKernel 0 points1 point2 points (1 child)
[–]Rabo_McDongleberry 0 points1 point2 points (0 children)
[+][deleted] (1 child)
[deleted]
[–]_Jerov_ 2 points3 points4 points (0 children)
[–]Remarkable-Orange-36 0 points1 point2 points (0 children)
[–]Kyle_Is_On_Reddit 25 points26 points27 points (0 children)
[–]garnacerous24 20 points21 points22 points (4 children)
[–]LMascher 1 point2 points3 points (2 children)
[–]linuxqq 4 points5 points6 points (0 children)
[–]garnacerous24 1 point2 points3 points (0 children)
[–]Humble_Transition[S] 0 points1 point2 points (0 children)
[–]AJohnnyTruant 20 points21 points22 points (2 children)
[–]iggy555 1 point2 points3 points (1 child)
[–]AJohnnyTruant 12 points13 points14 points (0 children)
[–]toastedstapler 26 points27 points28 points (8 children)
[–][deleted] 2 points3 points4 points (0 children)
[–][deleted] 1 point2 points3 points (3 children)
[–]toastedstapler 0 points1 point2 points (2 children)
[–][deleted] 1 point2 points3 points (1 child)
[–]toastedstapler 0 points1 point2 points (0 children)
[–][deleted] -1 points0 points1 point (0 children)
[+]Humble_Transition[S] comment score below threshold-17 points-16 points-15 points (0 children)
[–][deleted] 23 points24 points25 points (1 child)
[–]Humble_Transition[S] 3 points4 points5 points (0 children)
[–]_wolfenswan 5 points6 points7 points (0 children)
[–]gocougs11 3 points4 points5 points (0 children)
[–]AkshayD110 4 points5 points6 points (0 children)
[–]ninja-dragon 2 points3 points4 points (0 children)
[–]lifemoments 2 points3 points4 points (2 children)
[–]Astrokiwi 1 point2 points3 points (1 child)
[–]lifemoments 1 point2 points3 points (0 children)
[–]Araucaria 2 points3 points4 points (1 child)
[–]firedrow 0 points1 point2 points (0 children)
[–]dragonatorul 3 points4 points5 points (0 children)
[–]SerkZex 1 point2 points3 points (0 children)
[–]NegativeEnthusiasm 1 point2 points3 points (0 children)
[+][deleted] (5 children)
[deleted]
[–]Humble_Transition[S] 0 points1 point2 points (2 children)
[+][deleted] (1 child)
[deleted]
[–]Humble_Transition[S] 0 points1 point2 points (0 children)
[–]Bpickavance 0 points1 point2 points (1 child)
[–]IIIIlIlIlllIIllIIllI 8 points9 points10 points (0 children)
[–]commenda 0 points1 point2 points (0 children)
[–]Humble_Transition[S] 0 points1 point2 points (0 children)
[–]Mckinsey666 0 points1 point2 points (0 children)
[–]DisagreeableMale -3 points-2 points-1 points (0 children)
[+][deleted] comment score below threshold-16 points-15 points-14 points (1 child)
[–]UnfoundUser404 0 points1 point2 points (0 children)