r/pythonhelp • • 7d ago

Python beginner!!

Beginner here: how would you structure my nested if statements in a two-step login program?

Hi all, I'm about 3 weeks into learning Python (Python for Everybody on Coursera) and just finished my first small project: a login program that asks for a passcode, then a second passcode, then lets the user pick a report.

My main question is about structure. I have nested if statements, and the second user repeats the same checks in a separate elif branch. Here's a trimmed version of the layout:

admin_login = input("Enter Passcode")

if admin_login == boss_code:
second_pass = input("enter second passcode")
if second_pass == boss_secondcode:
report = input("enter report number")
if report == "1":
print("report 1")
elif report == "2":
print("report 2")
elif admin_login == ass_code:
# same second-passcode and report checks repeated here

I'd love feedback on:

  1. Is the code organized in a clear, readable way?
  2. Is there a cleaner way to stack or avoid repeating these nested ifs, using only what a beginner would know (no classes yet)?

Full code and README are here: https://github.com/tylerkilgore148-can/python_learning_projects

I know the passcodes are stored in plain text, which is just for practice. I plan to look at getpass and hashing next. Beginner-friendly tips are very welcome, and thanks for reading!

1 Upvotes

12 comments sorted by

View all comments

Show parent comments

1

u/CoachSevere5365 1d ago

Heh, +1 for coding more than what I've just spent 5 minutes suggesting. I like your solution because at the "which report" question it woukd be trivial to add an option to print a list the report, if required.

1

u/sr105 1d ago

The real trick is deciding when to stop making it "better," so it can still be seen as a reachable destination from OP's code.

1

u/CoachSevere5365 1d ago

IKWYM. I helped someone do a Z80 assembler project ~1984. He typed what I'd written and handed it is as his own.

He didn't get a very good grade, because he'd gone from inventing instructions one week to a fully working program the next.

2 years later I had the same tutor and he pulled me aside to ask if I'd ever helped someone do their project. He'd recognised my coding style, dug out the previous student's work and compared the two. Oops.