Непонятен принцип работы данного условия/кода

defend67

Новичок
Пользователь
Дек 18, 2022
3
0
1
В целом принцип работы цикла for мне понятен, при этом вот именно эта задача стала довольно трудной для меня.
Каков принцип работы данного условия? Почему в каждой строке количество знака ~ увеличивается по-разному? Буду очень признателен, если объясните довольно ясно и развёрнуто.20221218_200905.jpg
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 650
472
83
сначала лайн - пустая строка, затем на первой итерации цикла фор вы добавляете к лайн символ тильду, итого в лайн - тильда
затем на второй итерации вы складываете лайн, в которой тильда, с тильдой, и прибавляете это к текущей лайн, где уже была тильда, итого три тильды
и так далее

так же можно воспользоваться дебагером, там видно переменные на каждой итерации...
 
  • Мне нравится
Реакции: defend67

4olshoy_blen

Популярный
Пользователь
Ноя 13, 2022
419
113
43
Почему в каждой строке количество знака ~ увеличивается по-разному?
Не по разному, а по формуле 2 * len(line) + 1.
В начале line содержит 0 символов, т.к. line = ''.
При первой итерации цикла имеем: "" + "~" = "~". Это присваивается line.
Вторая итерация "~" + "~" = "~~". Это снова присваевается к line, который уже содержит одно тильда. Получается "~" + "~~" = "~~~". Теперь line уже с тремя тильдами
Третья итерация "~~~" + "~" = "~~~~". Снова присваиваем к line, содержащий 3 тильда. Имеем "~~~" + "~~~~" = "~~~~~~~". Теперь line уже с 7 тильдами.
Ну и 4 итерация: 7 тильд + 1 = 8. присваеиваем к имеющимся 7 = 15
 
  • Мне нравится
Реакции: defend67

defend67

Новичок
Пользователь
Дек 18, 2022
3
0
1
Не по разному, а по формуле 2 * len(line) + 1.
В начале line содержит 0 символов, т.к. line = ''.
При первой итерации цикла имеем: "" + "~" = "~". Это присваивается line.
Вторая итерация "~" + "~" = "~~". Это снова присваевается к line, который уже содержит одно тильда. Получается "~" + "~~" = "~~~". Теперь line уже с тремя тильдами
Третья итерация "~~~" + "~" = "~~~~". Снова присваиваем к line, содержащий 3 тильда. Имеем "~~~" + "~~~~" = "~~~~~~~". Теперь line уже с 7 тильдами.
Ну и 4 итерация: 7 тильд + 1 = 8. присваеиваем к имеющимся 7 = 15
Спасибо большое.
 

defend67

Новичок
Пользователь
Дек 18, 2022
3
0
1
сначала лайн - пустая строка, затем на первой итерации цикла фор вы добавляете к лайн символ тильду, итого в лайн - тильда
затем на второй итерации вы складываете лайн, в которой тильда, с тильдой, и прибавляете это к текущей лайн, где уже была тильда, итого три тильды
и так далее

так же можно воспользоваться дебагером, там видно переменные на каждой итерации...
Благодарю.
 

Форум IT Специалистов