0

私は現在、ここに表示されているクラスの 1 つのコードに取り組んでいます (名前/アドレスを変更して名前を非表示にします)。

# 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

これに関する私の問題は、彼らが欠席していることではありません。Name7 でペアリングされた別のデバイスがあり、何があっても存在しないと表示されます。実際に最初のものをチェックし、残りがなくなると失敗すると思います。これは、近くのデバイスを確認するときに遅延がある最初のものとは異なり、それらがすべて同時になくなるためであると私が考える理由です。

4

1 に答える 1

1

__sizeof__は、アイテムの数ではなく、指定されたオブジェクトの内部サイズをバイト単位で返します。len(blue_address_list)代わりに使うべきだと思います。

編集:タイムアウトを増やすと問題が解決bluetooth.lookup_nameします。指定された時間に応答できないようです。

于 2016-02-25T15:17:13.437 に答える