Форум сайта python.su
Здравствуйте. Требуется цикл записать в виде одной строки: “1, 2, 3, ёлочка, гори!”.
Код:
tree='' #пустая переменная
for i in range(1,4):
tree=tree+str(i)+', ‘
print(tree+’ёлочка, гори!“)
Результат:
1, 2, 3, ёлочка, гори!
Код работает, дан изначально. Но я в упор не понимаю, почему введённая переменная не повторяется, а выводится только в начале строки. Это видно, если заменить переменную:
tree='пустота'
for i in range(1,4):
tree=tree+str(i)+', ‘
print(tree+’ёлочка, гори!”)
Результат:
пустота1, 2, 3, ёлочка, гори!
Почему переменная не повторяется в каждой итерации?
Пробовала ввести в цикл перед str(i) ещё одну переменную или просто строку - это фрагмент в результате повторяется, а изначальная переменная так и остается только в начале.
Если пытаюсь в цикле задать новую переменную (вместо “tree=tree+…”, задаю “forest=tree+…”), тогда вовсе из всего цикла в результате я получаю только последнюю цифру, переменную и запятую с пробелом: “пустота3, ёлочка, гори!”
Куда делись остальные итерации?
Офлайн
Извиняюсь за опечатки. Писала с телефона, при отправке не заметила.
Офлайн
aniashka99Потому что внутри цикла у неё полностью заменяется всё её значение.
Почему переменная не повторяется в каждой итерации?
x = 1 # стало 1 x = x + 1 # стало 2 x = x + 1 # стало 3 x = x + 1 # стало 4
Отредактировано py.user.next (Ноя. 9, 2024 10:39:29)
Офлайн
Извиняюсь снова за “опечатки”. В редакторе сообщения слова отображаются те, которые Я напечатала, а в отправленном сообщении уже какая-то белиберда.
Восторг!😄 Кажется, я действительно поняла Ваше объяснение))
А в варианте, если в цикле выполнять операцию применения с новой переменной:
forest=tree+str(i)+', '
Почему программа выводит только последнюю итерацию, если произведены все три, просто остались независимыми друг от друга? Просто потому что это последнее действие в цикле? А предыдущие просто обнуляются?
Отредактировано aniashka99 (Ноя. 9, 2024 23:28:33)
Офлайн
[code python]код на форуме писать между этими тегами[/code]
Онлайн
aniashka99Потому что в переменную forest каждый раз сохраняется только текущее значение всех переменных. На последнем шаге цикла текущее значение всех переменных - пустота, цифра три.
А в варианте, если в цикле выполнять операцию применения с новой переменной:Почему программа выводит только последнюю итерацию, если произведены все три, просто остались независимыми друг от друга? Просто потому что это последнее действие в цикле? А предыдущие просто обнуляются?forest=tree+str(i)+', '
x = 1 # стало 1
y = x + 1 # осталось 1, получилось 2
y = x + 2 # осталось 1, получилось 3
y = x + 3 # осталось 1, получилось 4
# x осталось 1
# y стало 4
Офлайн