[英]Why “normal” user password always prints and desn't work
我的代码一般有效,但有一些错误。 当您输入“master”时,它会询问您密码,输入后会生成“普通”用户的密码。
关于“普通”用户:生成密码,但是当您键入密码时它不起作用并生成另一个密码。 我试图改变useracype()下面的useraccess()的位置,并继续做同样的事情。 还有一个不同的地方,“useraccess(user =”normal“,pswd = None”)“with usertype()创建一个像”functions =“这样的变量,使用它与”functions = masterkey()“之类的语句之下的调用函数和“functions = passwordgenerator()”,最后带有“返回功能”。 其余的你可以想象......
import getpass
import uuid
#generate password for normal users
def passwordgenerator(pswdlength = 5):
random = str(uuid.uuid4().int) #convierte el uuid a un string en enteros
random = random.replace("-", " ") #reemplaza el uuid en el "-"
return random[0:pswdlength] #imprime la contrasenha (se reemplazara despues por una funcion que mande al user)
#create a password for the admin
def masterkey():
masterpswd = 519 #valor del masterkey
admpswd = getpass.getpass(prompt="Ingresa tu contrasenha: ")
if admpswd == "519":
print ("youre in")
else:
print ("try it again")
def useraccess(user = "normal"):
userpassword = print(passwordgenerator())
while True:
allpswd = getpass.getpass("Password: ")
if allpswd == userpassword:
print("hi")
break
else:
print("you didnt made it")
break
def usertype():
user = str(input("Type of user: Normal o Master "))
while True:
if user.lower() == "master":
print(masterkey())
break
elif user.lower() == "normal":
print(useraccess())
break
#calling functions
usertype()
useraccess()
我希望在你编写密码时不要双重打印生成的密码和“普通”用户密码。
你有很多不需要的print()
。 如果删除它们,程序将按预期工作。 请记住, print()
不返回任何内容,因此任何赋值如x = print(whatever)
将导致x
等于None
。
userpassword = print(passwordgenerator())
。 打印电话不需要。 如上所述,它掩盖了返回值。 做就是了:
userpassword = passwordgenerator()
print(userpassword)
print(masterkey())
和print(masterkey())
。 再打印电话不需要。 它们只是打印None
,因为两个函数都不返回任何内容。 只需调用没有print()
的函数。
关于普通用户:生成密码,但是当您键入密码时,密码无效并在此之后重新打印另一个密码。
这是因为,你再打电话的事实useraccess()
后, usertype()
删除它,并仅调用usertype()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.