Re: Bold

Liste des GroupesRevenir à fcu lecteurs-de-news 
Sujet : Re: Bold
De : ram (at) *nospam* zedat.fu-berlin.de (Stefan Ram)
Groupes : fr.comp.usenet.lecteurs-de-news
Date : 06. Dec 2024, 19:02:47
Autres entêtes
Organisation : Stefan Ram
Message-ID : <Bold-20241206185839@ram.dialup.fu-berlin.de>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Olivier Miakinen <om+news@miakinen.net> a écrit ou cité :
Le 06/12/2024 15:51, Stefan Ram m'a répondu :
. . .
(ni de parenthèse
fermante) qui colle direct. Et après le deuxième slash, pareil,
pas de caractère alphanumérique (ni de parenthèse ouvrante)
qui suit direct.
Ok, mais ça ne fait que repousser le problème, parce que rajouter des espaces
n'est pas censé changer la formule mathématique, et qu'on peut vouloir les
mettre ou les retirer pour mieux formater l'affichage en colonnes :

  Oui, il semble que ce ne soit pas possible de répondre à toutes
  les exigences (à moins d'ajouter un programme d'IA peut-être).

  Le programme Python suivant réussit quatre des six cas de test.

  Sortie :

Original : /italique/ ou /penché/
Traité   : italique ou penché
Attendu  : italique ou penché
Correct  : True

Original : f_1(x, y) =  ((x + y) / x)  +  (y / (x + y))
Traité   : f_1(x, y) =  ((x + y) / x)  +  (y / (x + y))
Attendu  : f_1(x, y) =  ((x + y) / x)  +  (y / (x + y))
Correct  : True

Original : f_2(x, y) =  ((x + y) /x²)  +  (−y/ (x + y))
Traité   : f_2(x, y) =  ((x + y) x²)  +  (−y (x + y))
Attendu  : f_2(x, y) =  ((x + y) /x²)  +  (−y/ (x + y))
Correct  : False

Original : f(x, y) = (x + y)/x − y/(x + y)
Traité   : f(x, y) = (x + y)/x − y/(x + y)
Attendu  : f(x, y) = (x + y)/x − y/(x + y)
Correct  : True

Original : | Olivier      | *TRÈS MAUVAIS*     | Doit /redoubler/      |  0/20 |
Traité   : | Olivier      | TRÈS MAUVAIS     | Doit redoubler      |  0/20 |
Attendu  : | Olivier      | TRÈS MAUVAIS     | Doit redoubler      |  0/20 |
Correct  : True

Original : ni *(attention c'est important)* ni (*attention c'est important*) ne
Traité   : ni (attention c'est important) ni (*attention c'est important*) ne
Attendu  : ni (attention c'est important) ni (attention c'est important) ne
Correct  : False

  Code source :

import re

def est_alphanum(caractere):
    """Vérifie si le caractère est alphanumérique ou un symbole de parenthèse."""
    return caractere.isalnum() or caractere in '()'

def traiter_texte(texte):
    """Traite le texte pour conserver ou supprimer certains caractères."""
    precedent = ' '
    position = 0
    longueur = len( texte )
    resultat = ''

    while position < longueur:
        caractere = texte[ position ]
        suivant = ' ' if position + 1 >= longueur else texte[ position + 1 ]

        if caractere in( '/', '*' ):
            # Vérifie les conditions pour décider de conserver le caractère
            if not est_alphanum(precedent) and est_alphanum(suivant):
                pass
            elif est_alphanum(precedent) and not est_alphanum(suivant):
                pass
            else:
                resultat += caractere  # Conserver le caractère
        else:
            resultat += caractere  # Conserver les autres caractères
        position += 1
        precedent = caractere

    return resultat

# Cas de test
exemples = [
    "/italique/ ou /penché/",
    "f_1(x, y) =  ((x + y) / x)  +  (y / (x + y))",
    "f_2(x, y) =  ((x + y) /x²)  +  (−y/ (x + y))",
    "f(x, y) = (x + y)/x − y/(x + y)",
    "| Olivier      | *TRÈS MAUVAIS*     | Doit /redoubler/      |  0/20 |",
    "ni *(attention c'est important)* ni (*attention c'est important*) ne"
]

resultats_attendus = [
    "italique ou penché",
    "f_1(x, y) =  ((x + y) / x)  +  (y / (x + y))",
    "f_2(x, y) =  ((x + y) /x²)  +  (−y/ (x + y))",
    "f(x, y) = (x + y)/x − y/(x + y)",
    "| Olivier      | TRÈS MAUVAIS     | Doit redoubler      |  0/20 |",
    "ni (attention c'est important) ni (attention c'est important) ne"
]

# Tester la fonction
for i, exemple in enumerate(exemples):
    resultat = traiter_texte(exemple)
    print(f"Original : {exemple}")
    print(f"Traité   : {resultat}")
    print(f"Attendu  : {resultats_attendus[i]}")
    print(f"Correct  : {resultat == resultats_attendus[i]}")
    print()



Date Sujet#  Auteur
4 Dec 24 * Re: Bold39Olivier Miakinen
4 Dec 24 +- Re: Bold1Christophe PEREZ
4 Dec 24 +* Re: Bold18DV
5 Dec 24 i+* Re: Bold16Erwan David
5 Dec 24 ii+- Re: Bold1Éric Masson
5 Dec 24 ii`* Re: Bold14Olivier Miakinen
5 Dec 24 ii `* Re: Bold13Gilbert OLIVIER
5 Dec 24 ii  `* Re: Bold12Olivier Miakinen
6 Dec 24 ii   +- Re: Bold1Gilbert OLIVIER
6 Dec 24 ii   +* Re: Bold9Stefan Ram
6 Dec 24 ii   i`* Re: Bold8Olivier Miakinen
6 Dec 24 ii   i +* Pour voir was: Re: Bold3Jac
6 Dec 24 ii   i i`* Re: Pour voir was: Re: Bold2Olivier Miakinen
7 Dec 24 ii   i i `- Re: Pour voir was: Re: Bold1Jac
6 Dec 24 ii   i `* Re: Bold4Stefan Ram
6 Dec 24 ii   i  +* Re: Bold2Olivier Miakinen
6 Dec 24 ii   i  i`- Re: Bold1Stefan Ram
7 Dec 24 ii   i  `- Re: Bold1Stefan Ram
6 Dec 24 ii   `- Re: Bold1Erwan David
5 Dec 24 i`- Re: Bold1Olivier Miakinen
5 Dec 24 +* Re: Bold2Jac
5 Dec 24 i`- Re: Bold1Olivier Miakinen
5 Dec 24 +- Re: Bold1Michael Uplawski
5 Dec 24 +* Re: Bold2Jo Engo
5 Dec 24 i`- Re: Bold1Eric M
5 Dec 24 +* Re: Bold2Jean-Pierre Kuypers
5 Dec 24 i`- Re: Bold1Jean-Pierre Kuypers
6 Dec 24 `* Re: Bold12Alf92
6 Dec 24  `* Re: Bold11Duzz'
6 Dec 24   `* Re: Bold10Alf92
6 Dec 24    +* Re: Bold4Alf92
7 Dec 24    i`* Re: Bold3Jo Engo
7 Dec 24    i `* Re: Bold2Duzz'
7 Dec 24    i  `- Re: Bold1Duzz'
6 Dec 24    +* Re: Bold4Duzz'
6 Dec 24    i`* Re: Bold3Eric M
6 Dec 24    i `* Re: Bold2Duzz'
6 Dec 24    i  `- Re: Bold1Eric M
6 Dec 24    `- Re: Bold1Eric M

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal