Lau*_*jas 2 random passwords import generator
我正在尝试编写密码生成器,但它不起作用,而且我无法理解该错误。
import random
import string
lw = list(string.ascii_lowercase)
uw = list(string.ascii_uppercase)
ns = list(string.digits)
password = ""
def addLW():
f = randrange(1, len(lw))
password = password + lw[f]
def addUW():
f = randrange(1, len(lw))
password = password + uw[f]
def addN():
f = randrange(1, len(lw))
password = password + ns[f]
funcs = [addLW, addUW, addN]
maxx = input("Password generator.\nMax: ")
if maxx.isdigit():
maxx = int(maxx)
for i in range(maxx):
func = random.choice(funcs)
func()
print(f"Password: {password}")
else:
print("Error")
Run Code Online (Sandbox Code Playgroud)
完整错误:
Traceback (most recent call last):
File "Password Generator.py", line 29, in <module>
func()
File "Password Generator.py", line 14, in addUW
f = randrange(1, len(lw))
NameError: name 'randrange' is not defined
Run Code Online (Sandbox Code Playgroud)
我不明白,因为我已经导入了“随机”......
import random
Run Code Online (Sandbox Code Playgroud)
您已导入random. 这意味着您的全局命名空间现在包含到命名空间的绑定random。它不包含该randrange()名称空间内的任何其他内容,因此您需要显式使用random.randrange()如果您希望它找到该方法,则
您可以使用以下命令将randrange其自身带入全局命名空间:
from random import randrange
Run Code Online (Sandbox Code Playgroud)
但这存在一些问题:
randrange(),而不是任何其他东西random;*,但请参阅前面关于污染全局命名空间的要点)。| 归档时间: |
|
| 查看次数: |
6039 次 |
| 最近记录: |