Python 嵌套While循环存在问题

Python 嵌套While循环存在问题,python,python-3.x,Python,Python 3.x,所以我使用嵌套的while循环来尝试和迭代这些函数,我不明白为什么在第二个循环中使用and等。循环通过第二个循环为什么它一直打印相同的数字,它应该在每个后续循环中都更大 老实说,我不知道我到底把什么搞砸了,如果有人能指出问题所在,我会非常感激的 import math p = 1 n = 10 while n < 321: p = 1 while p < 129: T_serial = n ^ 2 T_parallel = (T_

所以我使用嵌套的while循环来尝试和迭代这些函数,我不明白为什么在第二个循环中使用and等。循环通过第二个循环为什么它一直打印相同的数字,它应该在每个后续循环中都更大

老实说,我不知道我到底把什么搞砸了,如果有人能指出问题所在,我会非常感激的

import math

p = 1
n = 10

while n < 321:
    p = 1

    while p < 129:
        T_serial = n ^ 2
        T_parallel = (T_serial / p) + math.log(p)
        speed = T_serial / T_parallel
        effic = speed / p
        result = speed / effic
        print(result)
        p *= 2

    n += 10
导入数学
p=1
n=10
当n<321时:
p=1
而p<129:
T_serial=n^2
T_parallel=(T_serial/p)+math.log(p)
速度=T_串行/T_并行
效率=速度/p
结果=速度/效率
打印(结果)
p*=2
n+=10

以下内容向您展示了正在发生的事情:

import math

p = 1.0
n = 10.0

print "n\tp\tresult"

while n < 321.0:
    p = 1

    while p < 129.0:
        #print "n", n, "p", p
        T_serial = n**2.0
        T_parallel = (T_serial / p) + math.log(p)
        speed = T_serial / T_parallel
        effic = speed / p
        result = speed / effic
        print "%s\t%s\t%s" % (n, p, result)
        p *= 2.0
    n += 10.0
查看
effic
result
的方程式。最后你还是这么做了

results = speed / effic = speed / (speed / p) = p

所以难怪这不是你所期望的。您每次只需打印
p

第一个while循环中出现缩进错误

import math

p = 1
n = 10

while n < 321:

    p = 1

    while p < 129:
        T_serial = n ^ 2
        T_parallel = (T_serial / p) + math.log(p)
        speed = T_serial / T_parallel
        effic = speed / p
        result = speed / effic
        print(result)
        p *= 2

    n += 10
导入数学
p=1
n=10
当n<321时:
p=1
而p<129:
T_serial=n^2
T_parallel=(T_serial/p)+math.log(p)
速度=T_串行/T_并行
效率=速度/p
结果=速度/效率
打印(结果)
p*=2
n+=10

很抱歉,这是由于我错误地将其放入stackoverflow,我将进行相应的编辑。我希望在p<129时,第二次lop的n=20而不是10,因为它在第一次循环中。另外,索引只是我将其添加到堆栈溢出中的错误。很抱歉。
import math

p = 1
n = 10

while n < 321:

    p = 1

    while p < 129:
        T_serial = n ^ 2
        T_parallel = (T_serial / p) + math.log(p)
        speed = T_serial / T_parallel
        effic = speed / p
        result = speed / effic
        print(result)
        p *= 2

    n += 10