python中生成随机字符串的问题
我是python的新手,我正在尝试创建一个随机用户名和密码生成器,但我在设置随机用户名时没有遇到任何问题 我试着生成一个十个字符的随机字符串,但结果太长了,而且重复性很强。这是我试过的代码python中生成随机字符串的问题,python,Python,我是python的新手,我正在尝试创建一个随机用户名和密码生成器,但我在设置随机用户名时没有遇到任何问题 我试着生成一个十个字符的随机字符串,但结果太长了,而且重复性很强。这是我试过的代码 class CreateAcc: def passwordGenerator(self): import random, string password = ''.join(random.choice(string.ascii_letters + string.digi
class CreateAcc:
def passwordGenerator(self):
import random, string
password = ''.join(random.choice(string.ascii_letters + string.digits) for i in range(8))
return password
def usernameGenerator(self):
import random, string
nameExtra = ''.join(str(random.randint(0, 9) for i in range(2)))
username = ''.join(random.choice(string.ascii_letters) for i in range(10))
username = username.join(nameExtra)
return username
def main():
print("Username: %s. Password: %s" %(self.usernameGenerator(), self.passwordGenerator()))
ca = CreateAcc()
ca.main()
密码很好用,但我的用户名很大,而我只需要10个字符。看起来是这样的:
用户名:xMxzISsYSg.xMxzISsYSgxMxzISsYSg xmxzissysgaxmxzissysgsgxmxzissysgxmxzissysgxxmxzissgxmxzissysg0xmxzissgxmxzissysgxmxzissysgxmxzissgxmxzissg2xmxzissysgxmxzissgsgsgsgxmxzissysg9xmxzisszissgxzissgxzissgxxzissgxzissgxzissgxxxzissgxxxzissg4xxzissg8xxxxxzysg>。密码:mvomUHH6用户名。join(nametra)
的意思是“取nametra
中的每个字符,并将username
的完整值放在它们之间”。这就是它多次出现的原因。要解决此问题,请执行username+nametra
而不是username.join(nametra)
此外,您没有正确构建字符串,因此它使用
作为字符串,而不是您希望它使用的文本。要解决此问题,请对范围(2)中的i执行'.join(str(random.randint(0,9))
而不是'.join(范围(2)中的i执行str(random.randint(0,9))
。请注意右括号中的细微差别