首页 > 解决方案 > Python:使用while循环输出问题

问题描述

我试图弄清楚如何输出他们解决方案的变量/函数及其差异。

我遇到了无限输出相同内容的问题,所以我将其插入。但现在我对如何在一行中打印所有内容感到困惑(如果这有意义吗?)

编辑:(谢谢@dgg32)更新

import math
def my_sqrt(a):
    x=5
    y=1
    while True:
        y = (x + a/x) / 2.0
        if y == x:
            break
        x = y 
    return y 
def test_sqrt():
    a=5
    while True:
        if a<=25:
            b=my_sqrt(a)
            c=math.sqrt(a)
            d=abs(b-c)
            print (f"a={a} | my_sqrt(a)={b} | math.sqrt(a)={c} | diff={d}")
            a=+1

test_sqrt()

它应该输出变量的名称及其值(使用 'a' 最多 25。因此,总共 25 条输出行显示了 'a' 的值,my_sqrt、math.sqrt 的计算以及它们之间的差异。

现在,它无休止地输出相同的结果,而没有像我预期的那样进行增量更新。

标签: pythonloopsmathwhile-loop

解决方案


所以你的问题是关于如何打印 concat 消息?

在您的打印语句中,您引用了整个表达式,python 将打印整个内容而不作任何更改。

您可以:1. concat 引用和变量,2. f-string 或 3. 格式化输出。我发现 f-string 最简单:

value = 3
print (f"a is {value}")

输出:

a is 3

在您的情况下,只需在引号前面添加一个字母“f”就可以了:

    print (f'a = {b}  | my_sqrt(a) = {b} | math.sqrt(a) = {c} | diff = {d}')

推荐阅读