Это программа для генерации некоторой случайной строки до тех пор, пока не будет сгенерирована данная строка. Я не могу понять, как исправить индекс в части else
. Если случайно сгенерированный символ в attemptThis[i]
не совпадает с символом в t[i]
, мы сохраняем символ в attemptNext
право? И после этого при повторной проверке в attemptThis
? Сохраняется только один символ? Я не знаю, правильно ли я спрашиваю. Я получил представление об утверждениях в части if
. Но else:attemptNext += t[i]
сбивает с толку. Будем очень признательны за опыт с примером. (код из gfg)
import string
import random
possibleCharacters = string.ascii_lowercase + string.digits +
string.ascii_uppercase + ' ., !?;:'
t = "geek"
attemptThis = ''.join(random.choice(possibleCharacters)
for i in range(len(t)))
attemptNext = ''
completed = False
iteration = 0
while completed == False:
print(attemptThis)
attemptNext = ''
completed = True
for i in range(len(t)):
if attemptThis[i] != t[i]:
completed = False
attemptNext += random.choice(possibleCharacters)
else:
attemptNext += t[i]
iteration += 1
attemptThis = attemptNext
print("Target matched after " +
str(iteration) + " iterations")