我试图弄清楚如何输出其解决方案的变量/函数及其差异。
我在无限地输出相同的东西时遇到了问题,所以我把它弄乱了。但是现在我很困惑如何在一行中打印所有内容(如果有意义)?
编辑:(谢谢@ 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()
它应该输出变量的名称及其值(最多使用25个“ a”。因此,总共25条输出行显示出“ a”的值,这些值用于计算my_sqrt,math.sqrt以及它们之间的差异)
现在,它无休止地输出相同的结果,而没有我期望的增量更新。
已解决
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=1
count=0
while (count<=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}")
count = count + 1
a=a+1
test_sqrt()
感谢那些帮助我了解这一点的人。我对此深表谢意。
答案 0 :(得分:0)
所以您的问题是有关如何打印连续消息的?
在您的打印语句中,您引用了整个表达式,python将打印整个内容,而无需更改。
您可以:1.连接引号和变量,2. f字符串或3.格式化的输出。我发现最简单的f字串:
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}')
答案 1 :(得分:0)
如果使用while循环,则需要有一个条件来停止迭代,否则它将继续无穷大。您可以使用以25结尾的for循环或需要的任何数字,也可以使用带有变量的while循环来终止循环。您创建了一个无限循环,并在产生一次迭代后中断。
count = 0
while (count < 9):
print 'The count is:', count
count = count + 1
第二,break告诉python完全退出循环。如果使用break,它将告诉python停止运行循环。
如果要格式化字符串以打印漂亮的输出,则需要在使用format()或更新的f字符串的情况下使用字符串格式
"Hello, {}. You are {}.".format(name, age)
'Hello, Eric. You are 74.'
name = "Bob"
'Hello, {}'.format(name)
'Hello, Bob'
name = "Eric"
age = 74
f"Hello, {name}. You are {age}."
'Hello, Eric. You are 74.'