2016-11-10 3 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 вы понимаете 'join' и понимаете список, поэтому я не уверен, что нужно объяснять. Что ты не понимаешь? –

+0

@sebastian у вас есть googled, что перечисляет и как его использовать? –