Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 21-11-2024 15:59:36

soon
Membre
Inscription : 21-11-2024
Messages : 1

Impression que le programme n'est pas correctement éxecuté

Bonjour,
j'ai besoin d'aide pour un projet de création de moteur de recherche, l'objectif est de recommander des films à l'utilisateur pour que celui-ci puisse accéder à des recommandations personnalisées.
Pour ce faire, j'ai une base de donnée "movie" et je cherche à comparer les genres de l'utilisateur aux genres des films: je vous montre comment je m'y prends: (je passe tous les genre en minuscules au préalable et j'efface les "espaces" si l'utilisateur en met) j'espère que quelqu'un aura une petite solution pur me débloquer.. Merci !


     

liste_genre =[]
   
    while True:
        genre=str(input("Quelles sont vos genres de Film préferés ?  "))
        genre=genre.strip()
        if not genre:
            break
        liste_genre.append(genre)
        print(liste_genre)

choix_films = nv_df_movie[(nv_df_movie['genres'].apply(lambda x: any(genre in liste_genre for genre in x))) & (nv_df_movie["release_year"]==annee)]

Hors ligne

#2 21-11-2024 19:17:47

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 17 223

Re : Impression que le programme n'est pas correctement éxecuté

Re,

C'est bien du Python ?.
Si oui :
1 Déjà 1ere remarque :
  genre=(input())
  Depuis Python 3.x avec genre = input(), genre est déjà une chaîne, donc, le str() est inutile
  Par contre si genre devait être un nombre entier, il faudrait écrire genre =int(input())...

2.


    liste_genre =[]
    while True
        genre=input("Quels sont vos genres de films préférés ? ")
        if not genre:
            break
    liste_genre.append(genre)
    print(liste_genre)
 

Quels sont les genres que vous avez testés ?
Parce que, quelle que soit ma réponse, chaîne ou nombre, pour Python c'est toujours vrai... Donc, je ne sors jamais de la boucle while

Qu'est-ce que l'objet :  nv_df_movie ?
Une liste ? Parce que je vois nv.df.movie["release_year"]...
Si oui, alors "release_year" est une chaîne (même si release_year, lui peut être un nombre) et nv.df.movie["release_year"] devrait t'envoyer un message d'erreur disant grosso modo que les indices permettant d'accéder aux éléments d'une liste doivent être des entiers, pas des strings...

Tu es limité en nombre de lignes ? Parce que tu gagnerais en clarté et en maintenance à séquencer cette seule instruction :
choix_films = nv_df_movie[(nv_df_movie['genres'].apply(lambda x: any(genre in liste_genre for genre in x))) & (nv_df_movie["release_year"]==annee)]...

Si j'avais un conseil à te donner, crois-en mon expérience, ce serait d'abord (avant de passer à la programmation) de passer par l'étape papier+ stylo et d'écrire ton script en langage "naturel" (phrases pas utiles, plutôt style "télégraphique"), puis lorsque  tu seras satisfait
alors tu te lanceras dans la programmation.

C'est alors que le débogage commencera : ne te fais pas d'illusion, c'est relativement rare qu'un script de ce niveau marche du 1er coup...

Tu as "l'impression que le programme n'est pas correctement exécuté" ? C'est trop vague...
Mets-toi à la place de ta bécane, deviens aussi stupide qu'elle mais tout aussi obéissant et suis ton prog pas à pas comme si t'étais à la place de ta machine sans faire ce que tu as pensé qu'elle allait faire, mais très exactement ce que ton prog lui demande de faire...
Et là, fatalement à un moment, il y aura un écart entre ce que tu attendais qu'elle fasse et qui se fait réellement...
Et là, les pourquoi ? vont fleurir, et il faudra trouver les causes et y remédier...

Parce que, vois-tu, avec ce seul petit morceau de code, sans une base de données minimum pour aller avec, je suis réduit aux suppositions sur ce qu'il y a éventuellement avant et/ou après...
J'ai essayé de trouver ce qui pouvait mal (ou pas) fonctionner dans le bout de code, j'ai noté ce que je pensais possible, voire probable pour finalement ne pas t'aider beaucoup, ou même pas du tout !

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#3 29-11-2024 17:27:16

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 17 223

Re : Impression que le programme n'est pas correctement éxecuté

Re,

8 jours plus tard, soon is late...
L'aurais-je vexé ? Il n'y avait pourtant pas de quoi...
Tant pis, j'aurais essayé.

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
onze plus quatre-vingt quatorze
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums