为什么它不起作用? Python,订购,骑自行车

时间:2014-01-07 21:08:30

标签: python while-loop

我有问题。我的代码如下:

 algorythm--- solved

我的档案'masiny.txt'

m1 dns mail 
m2 none dhcp 
m3 none firewall 
m4 firewall ftp 
m5 mail voice 

第一列是“ID”,第二列是“依赖”,第三列是“提供”。它关于虚拟机器,它提供这样的服务,或依赖它。

我的问题,嗯,当我运行我的脚本时,它通过启动机器'm7'冻结。为什么?我认为逻辑是好的,但meybe错误在于这两行代码:

for j in running:  # get running services
    if j==dep[i] and i in notstarted:  # if important service is running and machnie is unopened

但为什么这个循环运行三次,然后冻结?
我正在使用python 3.3.3 请帮忙,我整天坐着

谢谢:)

错误发生在enter image description here

之后

1 个答案:

答案 0 :(得分:4)

这里的问题是你无法按照规则实际启动所有机器。前几个可以开始:

none > dhcp, firewall
firewall > ftp
ftp > http
http > tele

此时您不能再做了,但以下内容仍在notstarted中,因此代码无限循环:

m1 (mail, needs dns)
m5 (voice, needs mail)
m6 (chat, needs voice)
m7 (dns, needs chat)

这些计算机处于循环dns > chat > voice > mail > dns中,因此永远无法启动。