python中生成随机字符串的问题

python中生成随机字符串的问题,python,Python,我是python的新手,我正在尝试创建一个随机用户名和密码生成器,但我在设置随机用户名时没有遇到任何问题 我试着生成一个十个字符的随机字符串,但结果太长了,而且重复性很强。这是我试过的代码 class CreateAcc: def passwordGenerator(self): import random, string password = ''.join(random.choice(string.ascii_letters + string.digi

我是python的新手,我正在尝试创建一个随机用户名和密码生成器,但我在设置随机用户名时没有遇到任何问题

我试着生成一个十个字符的随机字符串,但结果太长了,而且重复性很强。这是我试过的代码

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))
。请注意右括号中的细微差别