0
我有一個循環,它向調制解調器寫入命令,並讀取調制解調器直到找到'OK'或'ERROR'。循環工作;一旦。出於某種原因,只要循環第一次完成,就會中斷。下面的代碼:Python:嵌套循環沒有按預期運行
for modem in ser:
for port in modem:
print port.name
port.write('ati\r\n')
a=port.read(size=2000)
a=a.splitlines()
t=False
while t!=True:
for line in a:
print line
if line=='OK' or line=='ERROR' or '$GP' in line:
t=True
print 'howdy ho diddly doo'
,我也做了while循環是這樣的:
while True:
for line in a:
print line
if line=='OK' or line=='ERROR' or '$GP' in line:
t=True
if t==True:
break
然而,這兩個版本,它的結果是這樣的:
COM71
ati
Manufacturer: Sierra Wireless, Incorporated
Model: MC8705
Revision: T3_5_2_1AP R517 CNSZXD00000128 2012/02/07 13:03:25
IMEI: 353567040568900
IMEI SV: 5
FSN: CC30942172510
3GPP Release 7
+GCAP: +CGSM,+FCLASS,+DS
OK
howdy ho diddly doo
>>> len(Ports) #Ports is ser (the list that I pass through for the function)
4
>>>
我知道可以確定ser的長度大於1,並且循環應該運行多次。我究竟做錯了什麼?
ser有幾個調制解調器並不明顯。嘗試迭代服務器和輸出調制解調器代理,並迭代每個調制解調器和輸出端口名稱。如果真的有一些項目在服務,那麼我們有一些討論。 – peroksid
對''while循環嵌套'while'的思想是什麼?除非我弄錯了,否則while循環會無限運行,一次又一次循環'a',或者只循環一次。在每次迭代中,if條件是真或假;在這個循環中'a'永遠不會改變! –
@peroksid我編輯它以包含輸出以及查詢列表長度後。 – RageCage