Zac*_*ch 3 python string iteration string.format while-loop
我正在尝试创建一个函数,允许我使用while循环将字符串传递给age变量.这是使用.format字符串的代码的简化版本.以下代码按预期工作.
num = 1
while num<7:
age = 'My age is {}'.format(num)
print(age)
num+=2
Run Code Online (Sandbox Code Playgroud)
输出如下图所示:
My age is 1
My age is 3
My age is 5
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用while循环捕获年龄变量中的字符串'My age is {}'时,它不起作用.这是代码.
num = 1
age = 'My age is {}'
while num<7:
age = age.format(num)
print(age)
num+=2
Run Code Online (Sandbox Code Playgroud)
我得到以下输出.
My age is 1
My age is 1
My age is 1
Run Code Online (Sandbox Code Playgroud)
知道第二个例子中num在while循环中没有增加的原因吗?解决方案是什么?
你正在覆盖age字符串,所以在第二次迭代中没有什么可以格式化的.您可以使用两个字符串 - 一个使用模板格式化为to,另一个使用格式化结果:
num = 1
template = 'My age is {}'
while num<7:
age = template.format(num)
print(age)
num+=2
Run Code Online (Sandbox Code Playgroud)