字符串格式 .format 到变量
String Format .format to variable
我正在尝试创建一个函数,允许我使用 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
但是,当我尝试使用 while 循环捕获 age 变量中的字符串 'My age is {}' 时,它不起作用。这是代码。
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
知道第二个例子中 while 循环中 num 不递增的原因吗?解决办法是什么?
第一次通过循环时,您已将字符串中的 {}
替换为数字。从那时起,format
无事可做,因为字符串中没有任何格式标记。
您正在覆盖 age
字符串,因此在第二次迭代中没有任何要格式化的内容。您可以使用两个字符串 - 一个带有要格式化的模板,另一个带有格式化结果:
num = 1
template = 'My age is {}'
while num<7:
age = template.format(num)
print(age)
num+=2
我正在尝试创建一个函数,允许我使用 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
但是,当我尝试使用 while 循环捕获 age 变量中的字符串 'My age is {}' 时,它不起作用。这是代码。
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
知道第二个例子中 while 循环中 num 不递增的原因吗?解决办法是什么?
第一次通过循环时,您已将字符串中的 {}
替换为数字。从那时起,format
无事可做,因为字符串中没有任何格式标记。
您正在覆盖 age
字符串,因此在第二次迭代中没有任何要格式化的内容。您可以使用两个字符串 - 一个带有要格式化的模板,另一个带有格式化结果:
num = 1
template = 'My age is {}'
while num<7:
age = template.format(num)
print(age)
num+=2