From 33ac6ed43aa64d3786431cd1d5f5f6be3425d249 Mon Sep 17 00:00:00 2001 From: Adrian Heine Date: Fri, 12 Apr 2024 17:12:45 +0200 Subject: [PATCH] Update --- main.py | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/main.py b/main.py index f459970..07cff91 100644 --- a/main.py +++ b/main.py @@ -71,9 +71,15 @@ def vergleiche(respuesta, expecta): respuesta = '¡' + respuesta[1:] if respuesta[0] == '?' and expecta[0] == '¿': respuesta = '¿' + respuesta[1:] + respuesta = re.sub('(~n|n~)', 'ñ', respuesta) + expecta = re.sub(' \((irr.|pl.)\)', '', expecta) respuesta = unicodedata.normalize('NFD', respuesta) expecta = unicodedata.normalize('NFD', expecta) + respuesta = re.sub(' ?([!?¿¡….]) ?', r'\1', respuesta) + expecta = re.sub(' ?([!?¿¡….]) ?', r'\1', expecta) + respuesta = re.sub(r'\.\.\.', '…', respuesta) + expecta = re.sub(r'\.\.\.', '…', expecta) if respuesta == expecta: return 0 respuesta = re.sub('[!?¿¡…. ]', '', respuesta) expecta = re.sub('[!?¿¡…. ]', '', expecta) @@ -94,6 +100,10 @@ assert vergleiche("Buenas noches", "¡Buenas noches!") == 1 assert vergleiche("ser", "ser (irr.)") == 0 assert vergleiche("hacer algo", "hacer (irr.) algo") == 0 assert vergleiche("padres", "padres (pl.)") == 0 +assert vergleiche("¿De dónde …?", "¿De dónde… ?") == 0 +assert vergleiche("el nombre", "el apellido") == 4 +assert vergleiche("Tengo … a~nos.", "Tengo... años.") == 0 +assert vergleiche("¿Cuántos a~nos tienes?", "¿Cuántos años tienes?") == 0 class Resultado: CORRECTO = 0 @@ -123,11 +133,10 @@ def einzelne_abfrage(palabra, status): else: match status: case 0: bien = Resultado.BIEN if resultado < 4 else Resultado.NO_BIEN - case 1: bien = Resultado.BIEN if resultado < 2 else (RESULTADO.NO_BIEN if resultado < 4 else Resultado.MAL) - case 2: bien = Resultado.BIEN if resultado < 2 else (RESULTADO.NO_BIEN if resultado < 3 else Resultado.MAL) - case 3: bien = resultado < 2 - case 4: bien = resultado < 1 - bien = Resultado.BIEN if bien else Resultado.MAL + case 1: bien = Resultado.BIEN if resultado < 3 else (Resultado.NO_BIEN if resultado < 4 else Resultado.MAL) + case 2: bien = Resultado.BIEN if resultado < 2 else (Resultado.NO_BIEN if resultado < 3 else Resultado.MAL) + case 3: bien = Resultado.BIEN if resultado < 2 else Resultado.MAL + case 4: bien = Resultado.BIEN if resultado < 1 else Resultado.MAL print(f" {bcolors.LINK_START}file://{AUDIO_BASE}{palabra['audio']}.aac{bcolors.LINK_MIDDLE}",end="") if bien == Resultado.CORRECTO: print(f"{bcolors.OKGREEN}✓{bcolors.ENDC}",end="") @@ -181,10 +190,10 @@ class Sesion: for palabra in palabras: match einzelne_abfrage(palabra, status): case Resultado.CORRECTO: - self.status[palabra['id']] = status + (2 if status < 2 else 1) + self.status[palabra['id']] = (status or 0) + (2 if (status or 0) < 2 else 1) self.bien += 1 case Resultado.BIEN: - self.status[palabra['id']] = status + 1 + self.status[palabra['id']] = (status or 0) + 1 self.bien += 1 case Resultado.NO_BIEN: continue