Je ne sais pas faire une opération avec des variables [Résolu]

Signaler
Messages postés
84
Date d'inscription
dimanche 13 septembre 2020
Statut
Membre
Dernière intervention
1 juillet 2021
-
 Thibault -
Bonjour,
Je ne sais pas faire une opération avec des variables, pour tant j'ai regardé sur internet mais je n'ai pas trouver !
Voici une ligne de mon programme:
resultat_multi = multi1*multi2

(les variables ont déjà été définis dans mon programme).

Pouvez vous me dire comment faire ?
Merci !
A voir également:

3 réponses

Messages postés
16404
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 juillet 2021
877
bonjour,
reçois-tu un message d'erreur?
Messages postés
84
Date d'inscription
dimanche 13 septembre 2020
Statut
Membre
Dernière intervention
1 juillet 2021

oui celui la
Traceback (most recent call last):
File "D:\FLorian\Informatique\Python\calculator.py", line 6, in <module>
resultat_multi = multi1*multi2
TypeError: can't multiply sequence by non-int of type 'str'
la ligne 6 c'est celle que je vous ai mis dans le message précédent.
Messages postés
32463
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
20 juillet 2021
7 819
Salut,

Tu as quoi comme erreur ? normalement ton code est bon.

Tu as affiché le résultat ? les 2 variables sont bien des nombres (float ou int) ? car un input() est au départ une chaine de caractère.

Messages postés
84
Date d'inscription
dimanche 13 septembre 2020
Statut
Membre
Dernière intervention
1 juillet 2021

Voici mon programme entier:

import time
calculation = input("Quel pératoin veux tu faire ? (répondre: multiplication, division, addition ou soustraction)")
if calculation == "multiplication":
    multi1 = input("Quel est le premier nombre de ta multiplication ?")
    multi2 = input("Quel est le deuxième nombre de ta multiplication ?")
    resultat_multi = multi1*multi2
    print("Le résulat de la mutiplication est", resultat_multi,"!")


voici le message d'erreur:

Traceback (most recent call last):
File "D:\FLorian\Informatique\Python\calculator.py", line 6, in <module>
resultat_multi = multi1*multi2
TypeError: can't multiply sequence by non-int of type 'str'
Messages postés
32463
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
20 juillet 2021
7 819 >
Messages postés
84
Date d'inscription
dimanche 13 septembre 2020
Statut
Membre
Dernière intervention
1 juillet 2021

il faut convertir les input en int, ou float si décimales, et rappelle le séparateur décimal en python c'est le point, pas la virgule
Messages postés
84
Date d'inscription
dimanche 13 septembre 2020
Statut
Membre
Dernière intervention
1 juillet 2021

Non je n'ai pas mis de int ou de float ?
Où faut-il que je les mettent ?
Messages postés
16404
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 juillet 2021
877 >
Messages postés
84
Date d'inscription
dimanche 13 septembre 2020
Statut
Membre
Dernière intervention
1 juillet 2021

multi1 = int(input("Quel est le premier nombre de ta multiplication ?"))
Messages postés
84
Date d'inscription
dimanche 13 septembre 2020
Statut
Membre
Dernière intervention
1 juillet 2021
>
Messages postés
16404
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 juillet 2021

Merci beaucoup !
Avec Python 3, la fonction input retourne tout le temps une chaîne de caractères, même si l'utilisateur entre un nombre.
Et comme tu ne peux pas multiplier deux chaînes de caractères ensemble, tu obtiens l'erreur ci-dessus.

Je te conseille de te renseigner sur les particularités de Python, notamment le fait que c'est un langage fortement typé. Ça peut te jouer des tours, notamment avec la fonction input et les opérations de type addition :
https://www.docstring.fr/formations/manipuler-les-objets-natifs/python-un-langage-dynamique-et-fortement-type,64