2016-11-10 65 views
0
from random import randint 
tal = ['0','1','2','3','4','5','6','7','8','9'] 
sign = ['@','£','$','€','&', '!', '?', '!'] 
bogstaver = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 
      'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'x', 'y', 'z'] 



numbers = [tal[randint(0,9)] + sign[randint(0,7)] + bogstaver[randint(0,24)] + tal[randint(0,9)] for x in range(4)] 
password = "".join(numbers) 
print(password[2::8]) 

print(password) 

我希望每隔4位,从密码中的第二个第一个字母开始,以字母大写。 这是代码的[2 :: 8]。但我不知道如何只用大写字母替换这两个字母。 有什么帮助吗?更改字符串中的特定字母

回答

2
password = ''.join([c.upper() 
        if i in range(2, len(password), 8) 
        else c 
        for i, c in enumerate(password)]) 
+0

你能解释一下你的代码吗? –

+0

@sebastian你明白'加入'和列表解析,所以我不知道需要解释什么。你不明白什么? –

+0

@sebastian你可以在Google上搜索什么,以及如何使用它? –