【问题标题】:String Format .format to variable字符串格式 .format 到变量
【发布时间】:2018-12-08 01:16:17
【问题描述】:

我正在尝试创建一个函数,该函数允许我使用 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 循环在年龄变量中捕获字符串“我的年龄是 {}”时,它不起作用。这是代码。

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 循环中不递增的原因吗?解决方案是什么?

【问题讨论】:

  • 您正在覆盖age 变量,并且在第一个循环之后,该变量不再具有所需的{}
  • 您不能覆盖年龄。将返回分配给不同的变量并使用它。多田~

标签: python string while-loop iteration string.format


【解决方案1】:

您正在覆盖age 字符串,因此在第二次迭代中没有任何内容需要格式化。您可以使用两个字符串 - 一个带有要格式化的模板,一个带有格式化结果:

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

【讨论】:

    【解决方案2】:

    第一次循环时,您将字符串中的{} 替换为一个数字。从那时起,format 没有任何事情可做,因为字符串中没有任何格式标记。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-01
      • 2014-02-18
      • 1970-01-01
      • 1970-01-01
      • 2011-07-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多