为什么这段代码突破了循环?

Hic*_*ick 0 python syntax-error

import math
t=raw_input()
k=[]
a=0
for i in range(0,int(t)):
    s=raw_input()
    b=1
    c=1
    a=int(s)
    if a==0:
        continue
    else:
        d=math.atan(float(1)/b) + math.atan(float(1)/c)
        v=math.atan(float(1)/a)
        print v
        print d
        print float(v)
        print float(d)
        while():
            if float(v)== float(d):
                break
            b=b+1
            c=c+1
            d=math.atan(float(1)/float(b)) + math.atan(float(1)/float(c))
            print d
        k.append(int(b)+int(c))

for i in range(0,int(t)):
    print k[i]
Run Code Online (Sandbox Code Playgroud)

因为它很明显,float(v) != float(d)直到b变为2并c变为3.

Tri*_*ych 8

你的while循环测试一个空元组,其值为False.因此,while循环中的语句永远不会执行:

如果您希望while循环运行直到遇到break语句,请执行以下操作:

while True:
    if (some_condition):
        break
    else:
        # Do stuff...
Run Code Online (Sandbox Code Playgroud)

  • 小修正:虽然没有"空状态",但在Python中没有这样的东西."while():"测试空元组"()",是的,空元组的计算结果为false.Python对于"while []:","while":","而0:"等具有相同的行为. (3认同)