计数器变量不计数

Counter var doesn't count up

我正在开发一个计算收件箱中电子邮件总数的函数。一切正常,但它只是不想全部计算在内。

我有一个数据库,我可以在其中查看用户的电子邮件和用户名。

函数:

@pyqtSlot(str, str)
def checkaantalmail(self, email, wachtwoord):

    cursor.execute("SELECT DISTINCT Naam FROM Klant")
    updatedklant = str(cursor.fetchall())

    credentials = Credentials(email, wachtwoord)
    acc = Account(email, credentials=credentials, autodiscover=True)

    for item in acc.inbox.all().order_by('-datetime_received')[:500]:

        inboxmail = str(item.sender).split("'")
        currentinboxmail = inboxmail[3]

        cursor.execute("SELECT DISTINCT Klant FROM Mail WHERE Mail=?", currentinboxmail)
        currentklant = str(cursor.fetchall())

        remove_characters = ["(",")","'",",","]","["]
        for characters in remove_characters:
            currentklant = currentklant.replace(characters, "")

        counter = 0 

        if currentklant not in updatedklant:
            print("yes")
            print(currentklant)
            counter += 1

    print("total", counter)

cmd prints:

if: works good and prints the current customer full name

total counter: prints 1 or 0 depends what the last e-mail is

提前致谢。

您正在循环中重置计数器。 counter = 0 应该在循环之外。

– 莫里斯迈耶

@pyqtSlot(str, str)
def checkaantalmail(self, email, wachtwoord):

    cursor.execute("SELECT DISTINCT Naam FROM Klant")
    updatedklant = str(cursor.fetchall())

    credentials = Credentials(email, wachtwoord)
    acc = Account(email, credentials=credentials, autodiscover=True)

    counter = 0 

    for item in acc.inbox.all().order_by('-datetime_received')[:500]:

        inboxmail = str(item.sender).split("'")
        currentinboxmail = inboxmail[3]

        cursor.execute("SELECT DISTINCT Klant FROM Mail WHERE Mail=?", currentinboxmail)
        currentklant = str(cursor.fetchall())

        remove_characters = ["(",")","'",",","]","["]
        for characters in remove_characters:
            currentklant = currentklant.replace(characters, "")

        if currentklant not in updatedklant:
            print("yes")
            print(currentklant)
            counter += 1

            
    print("total", counter)