在下面的Python代码中,我检查google是否在它的打印“google.com是在”无限次,我想打印一次,等到它会下降,当google下降,我想打印“google.com是在”只是一次又一次当google上升打印“google.com是在”像明智继续循环没有中断。
hostname = "google.com" #example
while True :
response = os.system("ping -c 1 " + hostname + "> /dev/null")
#and then check the response...
if response == 0:
print (hostname, 'is up!')
else :
print (hostname, 'is down!')
字符串
5条答案
按热度按时间ffscu2ro1#
您可以添加变量来检查上一个值。例如,如果响应为0,设置变量值并打印。如果响应值不变,则不打印并更改变量值
就像这样:
字符串
6tqwzwtp2#
我不确定什么是True,但如果你在一个循环中,并且只想在第一次触发时做某件事,而不是随后的几次,那么你需要标记第一次与第二次。后续时间。例如,在while语句之前,初始化两个变量,例如first.true = 1和first.false = 1。在if语句中,只打印if first.true = 1,之后(但仍在if语句中),将其设置为0。这确保它只会在第一次到达那里时打印。在else语句中使用first.false也是如此。
0yg35tkg3#
你可以添加一个break语句来退出while循环,例如:
字符串
但是,我不太理解你的问题,使用一个状态变量,就像在其他答案应该是可以的!!
jljoyd4f4#
您可以使用静态
last_update
字符串创建update
函数。update函数不会将相同的输出打印两次。字符串
bkhjykvo5#
在下面的代码中,它不断地ping我的家庭服务器打印'down'只有一次,当它关闭和等待,当服务器是打印'up'只有一次,然后再次当服务器关闭它将打印(down)只有一次。
字符串