Erreur python

Fermé
Higevi34 Messages postés 3 Date d'inscription jeudi 10 septembre 2020 Statut Membre Dernière intervention 27 octobre 2020 - 27 oct. 2020 à 08:35
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 27 oct. 2020 à 10:04
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 lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
Modifié le 27 oct. 2020 à 09:53
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 lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
27 oct. 2020 à 10:04
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