0

Help

Please explain this code for a beginner: def look_say(a): n = '1' print (n) for i in range(a): add = '' j = 0 while j < len(n): skip = 1 while (j + skip) < len(n) and n[j] == n[j+skip]: skip += 1 add += str(skip) + str(n[j]) j += skip n = add print (n) look_say(6)

9th Aug 2019, 11:50 AM
Zakhar
10 odpowiedzi
+ 9
Что именно тебе не понятно?
9th Aug 2019, 11:56 AM
Mikhail Gorchanyuk
Mikhail Gorchanyuk - avatar
+ 9
Эта строка сравнивает j-ое значение n со значением элемента (j+skip). при первом проходе программы они равны, но условие выполнения цикла while все равно не выполняется потому что не выполняется второе условие
9th Aug 2019, 12:02 PM
Mikhail Gorchanyuk
Mikhail Gorchanyuk - avatar
+ 9
add это просто переменная, такая же как j или n
9th Aug 2019, 12:29 PM
Mikhail Gorchanyuk
Mikhail Gorchanyuk - avatar
+ 8
'' это пустая строка, т. е. мы присваиваем add пустую строку. В дальнейшем мы её складывает с другими строками. Зачем это нужно? Вопрос к автору кода. Во многих примерах на Sololearn часто встречаются строки предназначенные лишь для того чтобы заставить пользователя думать и зачастую отвлекающие внимание. (p. s. В этом коде не путают, но мозг напрячь заставляют
9th Aug 2019, 12:56 PM
Mikhail Gorchanyuk
Mikhail Gorchanyuk - avatar
0
запутался, много переменных и циклов, не могу связать
9th Aug 2019, 11:59 AM
Zakhar
0
n[j] == n[j+skip]: и вот эту строку не понял пока до конца
9th Aug 2019, 12:00 PM
Zakhar
0
еще два момента:
9th Aug 2019, 12:26 PM
Zakhar
0
зачем: add = ‘’ что это?
9th Aug 2019, 12:28 PM
Zakhar
0
и while j < len(n) len это размер списка, какой здесь список с n?
9th Aug 2019, 12:31 PM
Zakhar
0
а зачем нужна в данном коде add и зачем ей присваевается ‘’?
9th Aug 2019, 12:32 PM
Zakhar