Skip to main content
 首页 » 编程设计

python之While循环中断问题(Python)

2025年05月04日16cyq1162

我目前正在尝试连接到 GPS 蓝牙设备。我的 Python 2.7 代码最初工作正常,但我现在尝试将我的代码实现到一个 while 循环中,这样,当我的设备不可用时,它将继续为它循环。不幸的是,我的代码似乎陷入循环并反复打印错误消息“无法找到蓝牙 GPS 设备。正在重试...”我正在使用 PyBluez 的蓝牙模块。

这是我的代码:-

import bluetooth 
 
target_address = "00:11:22:33:44:55:66" 
 
discovered_devices = discover_devices()  # Object to discover devices from Bluetooth module 
 
while True: 
    print "Attempting to locate the correct Bluetooth GPS Device..." 
    for address in discovered_devices: 
        if address != target_address: 
            print "Unable to Locate Bluetooth GPS Device. Retrying..." 
        else: 
            print "Bluetooth GPS Device Located: ", target_address 
            break 
 
# move on to next statement outside of loop (connection etc...) 

如前所述,基本上我想要实现的是启动设备发现对象,并在控制台上显示一条消息,表明它正在寻找传输指定设备地址的设备(即“00:11:22:33 :44:55:66”)。如果没有设备有这个地址,我希望代码显示与无法定位设备相关的错误消息,然后我希望它继续寻找。

另一方面,我最终还想编辑此代码,以便在尝试定位设备 X 次/X 次但无济于事后,我希望代码结束以及显示错误信息的程序。对此有何指导?

谢谢

请您参考如下方法:

线

discovered_devices = discover_devices() 

应该在进入 for 循环之前进入 while 循环。

然后将您的 while 循环替换为 for 循环以限制尝试次数。

并正确退出内部 for 循环,按照@Jeremy 所说的那样做:添加

else: 
    continue 
break 

最后。

您可能还希望在每次外循环迭代时使用 sleep() 在每次尝试之间等待。