Формат строки .format к переменной - PullRequest
0 голосов
/ 29 июня 2018

Я пытаюсь создать функцию, которая позволяет мне передавать строку в переменную age, используя цикл while. Это упрощенная версия кода с использованием строки .format. Следующий код работает как положено.

num = 1
while num<7:
    age = 'My age is {}'.format(num)
    print(age)
    num+=2

Вывод, как показано ниже:

My age is 1
My age is 3
My age is 5

Однако, когда я пытаюсь записать строку «My age is {}» в переменной age, используя цикл while, он не работает. Вот код.

num = 1
age = 'My age is {}'
while num<7:
    age = age.format(num)
    print(age)
    num+=2

Я получаю следующий вывод.

My age is 1
My age is 1
My age is 1

Есть идеи, почему num не увеличивается в цикле while во втором примере? Какое решение?

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Вы перезаписываете строку age, поэтому во второй итерации больше нечего форматировать. Вы можете использовать две строки - одну с шаблоном для форматирования в, а другую с отформатированным результатом:

num = 1
template = 'My age is {}'
while num<7:
    age = template.format(num)
    print(age)
    num+=2
0 голосов
/ 29 июня 2018

В первый раз в цикле вы заменили {} в строке числом. С этого момента format не имеет ничего общего, поскольку в строке нет маркеров форматирования.

...