奇怪的逻辑

2024-06-26 00:24:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我不能理解python中的逻辑。代码如下:

maxCounter = 1500
localCounter = 0

while True:
   print str(localCounter) + ' >= ' + str(maxCounter)
   print localCounter >= maxCounter

   if localCounter >= maxCounter:
      break

   localCounter += 30

结果输出:

...
1440 >= 1500
False
1470 >= 1500
False
1500 >= 1500
False
1530 >= 1500
False
1560 >= 1500
False
...

这里有无穷循环。为什么?你知道吗


topPos = someClass.get_element_pos('element')
scrolledHeight = 0

while True:
    print str(scrolledHeight) + ' >= ' + str(topPos)
    print scrolledHeight >= topPos
    if scrolledHeight >= topPos:
        print 'break'
        break

    someClass.run_javascript("window.scrollBy(0, 30)")
    scrolledHeight += 30
    print scrolledHeight

    time.sleep(0.1)

Tags: 代码falsetrueifelement逻辑printbreak
2条回答

问题似乎出在这一行:

topPos = someClass.get_element_pos('element')

这很可能是将字符串赋给topPos,而不是数值变量。您需要将这个字符串转换成一个数值变量,这样您就可以对它进行数值比较。你知道吗

topPos = int(someClass.get_element_pos('element'))

在任何实现中,{yth}总是小于cd2.7。你知道吗

相关问题

要修复代码,请尝试以下操作:

topPos = int(someClass.get_element_pos('element'))

为什么?

当我复制并粘贴您的原始代码时,我得到以下信息:

...
1440 >= 1500
False
1470 >= 1500
False
1500 >= 1500
True

我可以找到一个小的改变,就是把第一行改为:

maxCounter = '1500'  # string instead of integer

在进行此更改之后,我还可以看到您得到的输出:

1410 >= 1500
False
1440 >= 1500
False
1470 >= 1500
False
1500 >= 1500
False
1530 >= 1500
False
etc..

相关问题 更多 >