Erreur python

Higevi34 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

J'ai un petit problème dans mon algorithme en python à cause de cette erreur :
"TypeError: can't multiply sequence by non-int of type 'str'".
Je vous envoie ici le code en question pour que vous puissiez le visualiser.


CalorieAliment = 0.0
print(type(CalorieAliment))
ListeCalorie = {"Haricot vert":"0.31", "Carotte":"0.41","Pomme de terre":"0.73", "Courgette":"0.165", "Poireau":"0.32"}
ListePoid = {"Haricot vert":"1.0", "Carotte":"125.0","Pomme de terre":"160.0", "Courgette":"250.0", "Poireau":"150.0" }
Demande = int(input("Combien d'aliments voulez-vous consommé ? "))
for i in range(Demande) :
CalorieAliment = str(CalorieAliment)
Repas = input('Entrez votre aliment : ')
Unite = str(input('Unité : '))
for legume,calorie in ListeCalorie.items():
if legume == Repas :
Calorie = str(calorie)
for leguma, poid in ListePoid.items() :
if leguma == Repas :
Poid = str(poid)
print(Poid, type(Poid), type(Calorie), Calorie, 2.0*2.0)
CalorieAliment = CalorieAliment + Calorie*(Unite*Poid)
print(CalorieAliment)


Le problème est que je ne vois pas où est la faute. Je m'explique :
J'ai convertis tout mes valeurs en flottant car de base certains était en integer et je croyais que le fait de faire des calculs entre types différents était la source de l'erreur mais voilà que non.

Merci d'avance pour vos réponses !

2 réponses

Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 
Bonjour,

Merci de re poster ton code avec les balises de code, mode d'emploi:

https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Visuellement, ça doit ressembler à ceci :

def test():
    print('test')

test()


Quand on teste ton code, que faut il répondre à la question "Unité ?"
Tu devrais le documenter dans la question, que l'on sache quoi entrer

Il faut écrire "Combien d'aliments voulez-vous consommer ?"
au lieu de
"Combien d'aliments voulez-vous consommé ?"
0
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 
Calorie*(Unite*Poid) : tu multiplies des string et non pas des entiers ---> Erreur

Quand tu demandes 'Entrez votre aliment : ', si on entre carotte au lieu de Carotte, le mot n'est pas trouvé dans la liste
-----> Erreur
Moi, j'afficherais une liste des légumes, et je demanderais le numéro:

menu = '''
Selectionner:
1	Haricot vert
2	Carotte
3	Poireau
> '''
choix = 0
choix = int(input (menu))
0