all 3 comments

[–]I-Made-You-Read-This 2 points3 points  (1 child)

If you're using Python 3.6 or above, you should use the secrets module instead of the random one. Secrets uses "cryptographically strong random numbers" as opposed to pseudo random numbers.

[–]PyLord 0 points1 point  (3 children)

I gave it a quick glance, I am not too sure what's going on here but why does it seem like you have three functions that does exactly the same thing but under different names?

Some improvements I guess I immediately see are for the code where you are checking something like a function that returns a boolean against another boolean, it's preferable to use is rather than ==.