Python Forum
High level direction for my next project
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
High level direction for my next project
#1
Hi everyone,

I am learning how to code in Python thanks to a free course. So far it has been fun and the learning curve hasn't been disappointing. I do everything from the JupyterLap Notebook. My level is beginner.

To progress a meaningful task is needed, useful to me but within my reach, so I decided to "port" to python a small game that I developed before in VBA. Also, I want to abandon VBA.

The game is rather elementary: I am learning a foreign language, and every time I learn a word I add it in a table with its meaning and other information. The game prompts me with a word in English and 3 choices in the foreign language (currently I do this in Excel with a userform), and I need to guess the right translation.

As I said, a pretty simple concept. Its real implementation is slightly more complicated because it can ask me a word in English or my native language, and it tracks my mistakes so that if I get a word wrong, it is asked again pretty soon. Future planned additions to this code involve adding "hints" and other trinkets, but I will add them to the Python version instead.

It would be very helpful if you could give me some direction on how would you set yourself up to do a mini-project like this.

Some of the things where I need direction:
  1. Where would you code something like this? The Jupyter Notebook or Atom can be used as text editors I guess, but would you install Git to have a "version control" system, or is it like killing a fly with a cruise missile?
  2. Which of the thousand libraries would you use to read/write files where the "dictionary" and other things are stored? I could probably write a CSV parser but I guess using a library is best practice?
  3. At the very beginning the I/O will be in a terminal but my aim is a GUI, and I would love to run this one day on my phone. Again, we are talking about selecting one option out of three so it will be something simple and static.

Thank you if you will consider giving me some advice, both on the three points above and on anything I haven't even thought about.

HCB
Reply
#2
1. Can't really answer that. I've created some(small) software before but never using any framework.
2. Depends on how your data is stored. You don't need an external library to read and write files. You can do that with the regular read/write file functions. Though yes, I would recommend using CSV. I learnt it recently and am planning to use it in my projects from now on.
3. I would personally recommend Tkinter for a GUI. It's very simple and probably the easiest to learn.
Reply
#3
1. Jupiter Notebooks are kind of more for interactive use, as basically they're an enhanced version of the Python shell. Use a regular text editor for real programs like this. I'd do Git too actually. At the very least, if you have a repository on a place like GitHub, you have a backup for free. Version control is undoubtedly a useful skill in any case.

2. The Python standard library includes a module for reading and writing CSV files, so you could use that. You might also consider using a database, though that requires more learning on your part. Python comes with support for the database SQLite, which is a small, file-based relational database.

3. If you're just a beginner, I'd stick to thinking about the terminal for now. GUIs and phone apps are going to be more complicated and I'd think that's too much in one go.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Planning High Level Drawing Library nadapez 0 1,322 Oct-08-2021, 02:21 AM
Last Post: nadapez
  High level Python program architectural design question - decoration for multiple ent yahbai 0 1,746 Jan-16-2020, 08:30 PM
Last Post: yahbai
  New and raring to go just need some direction Lee23 1 1,724 Jun-03-2019, 06:16 PM
Last Post: Gribouillis
  Operator Precedence Direction in Docs blitz4 3 3,097 Mar-11-2018, 06:15 AM
Last Post: wavic

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020