python - 我正在尝试通过上部函数在python的密码生成器中生成两个大写字母,但它不起作用
问题描述
我创建了一个函数以
def letter_def(letter):
letter_ = randint(1, 26)
if letter_ == 1:
letter = "a"
elif letter_ == 2:
letter = "b"
并以
elif letter_ == 25:
letter = "y"
elif letter_ == 26:
letter = "z"
return letter
然后我试图通过调用这个函数
password = {symbol_def(symbol_1), symbol_def(symbol_2), number_def(number_1), number_def(number_2),
letter_def(Capital_1.upper()), letter_def(Capital_2.upper()), letter_def(letter_1),
letter_def(letter_2), letter_def(letter_3), letter_def(letter_4)}
password = list(password)
print("\nyour password is: " + str(password[0]) + str(password[1]) + str(password[2]) + str(password[3]) +
str(password[4]) + str(password[5]) + str(password[6]) + str(password[7]) + str(password[8]) +
str(password[9]) + "\n")
并专注于这条线
letter_def(Capital_1.upper()), letter_def(Capital_2.upper())
但生成的密码中没有任何大写字母
your password is: 9fk)b4}qoa
所以我应该为大写创建另一个函数还是有解决这个问题的方法
解决方案
我不完全确定您为什么要尝试以这种方式生成随机密码。但是我相信要解决您的问题,您可能需要调用 letter_def(Capital_1).upper()
这将使您随机选择一个字母后字母大写。
如果您只想生成一个随机密码,则可以使用以下方法:
import string
import random
def gen_password(stringLength=10):
lettersAndDigits = string.ascii_letters + string.digits
password = ''.join(random.choice(lettersAndDigits) for i in range(stringLength))
return ''.join(random.choice(lettersAndDigits) for i in range(stringLength))
推荐阅读
- java - 是否可以在 JUnit 中设置测试类的方法的返回值?
- google-apps-script - 编辑单元格时触发 API 调用
- curl - 如何在 gitlab-ci 文件中使用 curl?
- python - 根据其他列的值填充列
- nix - Nix 如何使用替代存储路径进行 CI 缓存
- java - 我对 org.springframework.mock.web 缺少什么依赖?
- html - 使 img 仅出现在 Jumbotron div 中
- java - CollapsingToolbar - 与正确锚定重叠
- django - Django 如何在 django 中使用 webhook 并将数据发送到 zapier?
- javascript - 如何替换html文件中的正文