0

在它运行的这段代码中,我不明白为什么会引发 WindowsError。如果我不写break语句,strout处写成无限循环:

'OSError' 对象标志 2 的成员 'strerror'

正如https://docs.python.org/3/library/itertools.html#itertools.count所说,count() 相当于一个 for 循环。

是否有可能当 itertools.count() 到达最后一个元素时,引发错误,并且我写了一个中断语句,是否有可能退出 for 循环?

我不知道我已经足够清楚了......这就是代码:

for i in itertools.count():
    try:
        val=winreg.EnumValue(key,i)
        print(str(val[1]))
        if (val[1]=='COM3'): #SERIAL PORT
            port=val[1] #COM PORT
    except WindowsError:
        print(WindowsError.strerror, ' flag2')
        break

对我来说,代码很好并且可以运行,但我只想知道 itertools 是否引发错误,因为它到达最后一个元素,为此我必须编写一个中断语句。如果是,如果有没有错误的替代代码,或者更优雅。

谢谢

4

0 回答 0