Skip to content

Commit d64a960

Browse files
committed
Day 5 - Adding hard mode to password generator
1 parent 437bcfb commit d64a960

File tree

1 file changed

+59
-21
lines changed

1 file changed

+59
-21
lines changed

100 Days of Code/5-day_password-generator.py

+59-21
Original file line numberDiff line numberDiff line change
@@ -11,36 +11,74 @@
1111
nr_letters= int(input("How many letters would you like in your password?\n"))
1212
nr_symbols = int(input(f"How many symbols would you like?\n"))
1313
nr_numbers = int(input(f"How many numbers would you like?\n"))
14+
nr_randomOrder = input("Would you like your password to be in random order? (y/n)\n").lower()
1415

1516
#Easy Level - Order not randomized:
1617
#e.g. 4 letter, 2 symbol, 2 number = JduE&!91
1718

18-
def generateLetters():
19-
global letter
20-
letter = ""
21-
for lettersNum in range(nr_letters):
22-
letter += secrets.choice(letters)
23-
generateSymbols()
19+
def easyMode():
20+
def generateLetters():
21+
global letter
22+
letter = ""
23+
for lettersNum in range(nr_letters):
24+
letter += secrets.choice(letters)
25+
generateSymbols()
2426

2527

26-
def generateSymbols():
27-
global genSymbols
28-
genSymbols = ""
29-
for symbolNum in range(nr_symbols):
30-
genSymbols += secrets.choice(symbols)
31-
generateNumbers()
28+
def generateSymbols():
29+
global genSymbols
30+
genSymbols = ""
31+
for symbolNum in range(nr_symbols):
32+
genSymbols += secrets.choice(symbols)
33+
generateNumbers()
3234

33-
def generateNumbers():
34-
global genNumbers
35-
genNumbers = ""
36-
for numNum in range(nr_numbers):
37-
genNumbers += secrets.choice(numbers)
38-
resultPassword()
35+
def generateNumbers():
36+
global genNumbers
37+
genNumbers = ""
38+
for numNum in range(nr_numbers):
39+
genNumbers += secrets.choice(numbers)
40+
resultPassword()
41+
42+
def resultPassword():
43+
print(f"Your password is: {letter}{genSymbols}{genNumbers}")
44+
45+
generateLetters()
3946

40-
def resultPassword():
41-
print(f"Your password is: {letter}{genSymbols}{genNumbers}")
4247

4348

44-
generateLetters()
4549
#Hard Level - Order of characters randomised:
4650
#e.g. 4 letter, 2 symbol, 2 number = g^2jk8&P
51+
52+
passwdList = []
53+
54+
55+
def hardMode():
56+
57+
def generateLettersH():
58+
global passwdList
59+
for lettersNum in range(nr_letters):
60+
passwdList += secrets.choice(letters)
61+
generateSymbolsH()
62+
63+
def generateSymbolsH():
64+
global passwdList
65+
for symbolNum in range(nr_symbols):
66+
passwdList += secrets.choice(symbols)
67+
generateNumbersH()
68+
69+
def generateNumbersH():
70+
global passwdList
71+
for numNum in range(nr_numbers):
72+
passwdList += secrets.choice(numbers)
73+
resultPasswordH()
74+
75+
def resultPasswordH():
76+
global passwdList
77+
print(f"Your password is: {passwdList}")
78+
79+
generateLettersH()
80+
81+
if nr_randomOrder == "y":
82+
hardMode()
83+
else:
84+
easyMode()

0 commit comments

Comments
 (0)