【问题标题】:I'm trying to iterate, but I'm not getting the expected output in Python [closed]我正在尝试迭代,但在 Python 中没有得到预期的输出 [关闭]
【发布时间】:2022-01-22 23:28:48
【问题描述】:

我正在编写一个代码,它应该一遍又一遍地输出 2 个数字,直到其中一个达到 2。我找不到错误,我什至使用了可视化工具,即使变量具有预期值,输出错误。这是我的代码:

I = 0
J = 1
count = 0
while I <= 2:
    print('I={:.0f} J={:.0f}'.format(I, J))
    J += 1
    count += 1
    if count == 3:
        I += 0.2
        J = 1 + I
        count = 0

这是预期的输出:

I=0 J=1
I=0 J=2
I=0 J=3
I=0.2 J=1.2
I=0.2 J=2.2
I=0.2 J=3.2
.....
I=2 J=3
I=2 J=4
I=2 J=5

再次,当我通过 vizualizer 运行它时,我可以看到在每个步骤中分配给我的变量的值都是正确的,但问题在于它何时打印。

【问题讨论】:

    标签: python loops variables while-loop


    【解决方案1】:

    您正在将IJ 的值截断为 个小数位,而不是所需的一个

    print('I={:.1f} J={:.1f}'.format(I, J))
    

    然而,这会将 所有 值显示到小数点后 1 位,即使该数字是 0。如果您真的想要整数和浮点值的混合,则必须进行测试IJ 在每个 print 之前的值,并决定如何显示它们。类似的东西

    di = 0 if int(I) == I else 1
    dj = 0 if int(J) == J else 1
    
    print(f'I={I:.{di}f} J={J:.{dj}f}')
    

    (我使用的是 f 字符串而不是调用 format,因为老实说,我不记得如何将变量注入格式字符串。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-30
      • 2020-09-01
      • 1970-01-01
      • 2014-03-24
      • 2019-06-23
      相关资源
      最近更新 更多