В настоящее время я работаю над некоторым кодом для одного из моих классов, который показан здесь (изменено имя/адрес, чтобы скрыть имена).Ошибка кода, когда одно устройство не найдено рядом с PyBluez
# coding=utf:8
#————————————————————————Attendance Checker Start————————————————————————#
import bluetooth
import time
#-----Function Definition Start-----#
def student_check(index):
result = bluetooth.lookup_name(blue_address_list[index], timeout=1)
if (result is not None):
return True
else:
return False
#-----Function Definition End-----#
#————————Defined Dictionary Start————————#
blue_student_list = ['Name1', 'Name2', 'Name3', 'Name4',
'Name5', 'Name6', 'Name7', 'Name8',
'Name9']
blue_address_list = ['Address1', 'Address2', 'Address3', 'Address4', 'Address5', 'Address6', 'Address7', 'Address8', 'Address9']
#—————————Defined Dictionary End—————————#
#———————————————Print Method Start———————————————#
print ' '
time.sleep(1)
print 'Checking who is here on ' + time.strftime('%b %d, %Y', time.gmtime())
print ' '
time.sleep(1)
for i in range(0, len(blue_address_list)):
if (student_check(i)):
print blue_student_list[i] + ': Present '
else:
print blue_student_list[i] + ': Absent '
print 'Script Completed'
#————————————————Print Method End————————————————#
#—————————————————————————Attendance Checker End—————————————————————————#
Моя проблема в том, когда начинается скрипт, я получаю этот вывод.
Checking who is here on Feb 24, 2016
Name1: Present
Name2: Absent
Name3: Absent
Name4: Absent
Name5: Absent
Name6: Absent
Name7: Absent
Name8: Absent
Name9: Absent
Script Completed
Моя проблема с этим не в том, чтобы они отсутствовали. У меня есть другое устройство в паре под именем7, которое говорит, что отсутствует, несмотря ни на что. Я считаю, что он фактически проверяет первый и терпит неудачу, когда один из них отсутствует. Причина, по которой я думаю, это потому, что все они отсутствуют в то же самое время, у нее нет никакой задержки, в отличие от первой, которая имеет задержку при проверке ближайшего устройства.
Не используйте '! = None'; use 'is not None'. – zondo
Изменен код для этого, еще не повезло. @zondo – dylan
'blue_address_list .__ sizeof __()' возвращает размер списка в памяти в байтах. Возможно, вам нужен 'range (0, len (blue_address_list))' или словарь, который сопоставляет адреса с именами, поэтому вы можете передать адрес непосредственно в 'student_check', а затем использовать адрес для поиска имени при отображении результатов. –