我有问题。我的代码如下:
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
请帮忙,我整天坐着
谢谢:)
错误发生在
之后答案 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
中,因此永远无法启动。