Question sur les dictionnaires et les str

Fermé
ExypnoseinT2NaH - Modifié le 28 avril 2020 à 01:17
 ExypnoseinT2NaH - 28 avril 2020 à 14:43
Bonjour, j'essaye de créer une sorte de bot de discussion et en gros, j'ai créé un dictionnaire avec des phrases comme clés et d'autres comme valeurs (exemple : {"how are you": "fine and you"} ) ça fonctionne bien mais ce que je voudrais faire c'est que l'algorithme puisse reconnaitre des phrases meme avec de petites variations (exemple : " hello" et "hello !", de base, le programme ne va pas reconnaitre le "hello !", ce qui est embêtant) du coup j'avais codé un petit truc (ci dessous) mais ça n'a pas l'air de fonctionner donc bon

for i in memory:
  if rep1[:len(i)] == i:
   print(memory[i])
   sent.append(i)
   break

  else:
                        pass


PS : j'utilise python3

Configuration: Windows / Edge 81.0.416.64

4 réponses

Chris 94 Messages postés 50978 Date d'inscription mardi 8 janvier 2008 Statut Modérateur Dernière intervention 17 février 2023 7 341
28 avril 2020 à 01:18
0
ExypnoseinT2NaH
28 avril 2020 à 01:20
oui, je me demandais si vous pouviez m'aider à trouver une solution à mon probleme

merci d'avance
0
yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 Ambassadeur 1 557
28 avril 2020 à 10:53
bonjour, "ça n'a pas l'air de fonctionner".
peux-tu donner un exemple qui utilise ton code, le résultat obtenu, et le résultat attendu?
0
pas de problème, quand j'execute le code, avec dans la mémoire une phrase comme "how are you" sans ponctuation et que l'utilisateur rentre une valeur pour rep1 comme "how are you ?"
je voudrais que le programme retourne la réponse programmmée qu préalable dans le dictionnaire pour "how are you"

exemple:

memory = {
"how are you":"fine and you ?"
}
rep1 = str(input(">> ")

for i in memory:
  if rep1[:len(i)] == i:
   print(memory[i])
   sent.append(i) #cette ligne sert juste au programme à savoir que la phrase a été dite
   break

  else:
   pass


et au lieu d'obtenir "fine and you ?" dans le terminal, je n'obtiens rien...

merci d'avance pour vos réponses
0
yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 1 557
28 avril 2020 à 14:35
oups, peux-tu utiliser les balises de code pour publier ton code?
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
0
yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 1 557 > yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024
28 avril 2020 à 14:42
quand je testes ton programme, j'obtiens plusieurs messages d'erreur. ne devrais-tu pas d'abord en tenir compte?
0
ExypnoseinT2NaH > yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024
28 avril 2020 à 14:43
ah bon ? et bien ils ne s'affichaient pas, je vais voir ça, et je vous tiens au courant, merci
0