while循环只响应第二个条件

时间:2016-10-13 11:17:06

标签: python

我的while循环仅在匹配第二个条件时结束,第一个被忽略,我不知道我做错了什么

while (response !=0) or (cont != 5):
    response = os.system("ping -c 2 " + hostname)
    cont=cont+1
    print cont
    print response

2 个答案:

答案 0 :(得分:0)

将您的or更改为and。当它检查第一个条件并且如果它是假并且第二个条件为真时,整个条件将为真。这意味着要么第一个条件为真,要么第二个条件为真。

While ( false or true ) will be while ( true )

要检查两种情况,请使用and。它会检查表达式true的{​​{1}}两个条件是true

while ( false and true ) will be while ( false )

while (response !=0) and (cont != 5):
    response = os.system("ping -c 2 " + hostname)
    cont=cont+1
    print cont
    print response

答案 1 :(得分:0)

使用subprocess.call

import subprocess

for count in range(5);
    response = subprocess.call(["ping", "-c", "2", hostname])
    if not response:
        break

首选使用rangexrange进行迭代。