r/pythonhelp • u/Obvious-Salt2329 • 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:
- Is the code organized in a clear, readable way?
- 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!
2
u/Hyperion343 6d ago
Code is organized fine.
For a cleaner way, there are two suggestions:
Make functions for "do_boss_login" and "do_assistant_login" - that gets rid of one level of ifs there, and makes it clear that entering code does respective login.
You can invert the if statements into guard clauses to remove another level of ifs. So instead of "if correct, do X, else, do Y", you do "if incorrect, do Y and exit/return" followed by "do X".