簡體   English   中英

Python:判斷真假

[英]Python : While True or False

我不是一個有經驗的程序員,我的代碼有問題,我認為這是我的邏輯錯誤,但我在http://anh.cs.luc.edu/python/hands-on/找不到答案3.1/handsonHtml/whilestatements.html 我想要的是檢查串口設備是否被鎖定,“它被鎖定”和“它沒有被鎖定”的條件之間的區別是在包含GPGGA字母的行中有4個逗號,,,, 所以我希望我的代碼在沒有,,,,啟動,,,,但我想我的循環是錯誤的。 任何建議將不勝感激。 提前致謝。

import serial
import time
import subprocess


file = open("/home/pi/allofthedatacollected.csv", "w") #"w" will be "a" later
file.write('\n')
while True:
    ser = serial.Serial("/dev/ttyUSB0", 4800, timeout =1)
    checking = ser.readline();
    if checking.find(",,,,"):
        print "not locked yet"
        True
    else:
        False    
        print "locked and loaded"

. . .

使用break退出循環:

while True:
    ser = serial.Serial("/dev/ttyUSB0", 4800, timeout =1)
    checking = ser.readline();
    if checking.find(",,,,"):
        print "not locked yet"
    else:
        print "locked and loaded"
        break

TrueFalse行在您的代碼中沒有做任何事情; 他們只是引用內置的布爾值,而沒有在任何地方分配它們。

您可以使用變量作為while循環的條件, while不僅僅是while True 這樣你就可以改變條件。

因此,不要使用此代碼:

while True:
    ...
    if ...:
        True
    else:
        False    

... 嘗試這個:

keepGoing = True
while keepGoing:
    ser = serial.Serial("/dev/ttyUSB0", 4800, timeout =1)
    checking = ser.readline();
    if checking.find(",,,,"):
        print "not locked yet"
        keepGoing = True
    else:
        keepGoing = False    
        print "locked and loaded"

編輯:

或作為另一個回答者指出,你可以break循環了:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM