Je ne sais pas faire une opération avec des variables

Résolu
Multi73 Messages postés 95 Statut Membre -  
 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 !

3 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour,
    reçois-tu un message d'erreur?
    0
    1. Multi73 Messages postés 95 Statut Membre 2
       
      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.
      0
  2. jee pee Messages postés 31884 Date d'inscription   Statut Modérateur Dernière intervention   9 979
     
    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.

    0
    1. Multi73 Messages postés 95 Statut Membre 2
       
      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'
      0
      1. jee pee Messages postés 31884 Date d'inscription   Statut Modérateur Dernière intervention   9 979 > Multi73 Messages postés 95 Statut Membre
         
        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
        0
    2. Multi73 Messages postés 95 Statut Membre 2
       
      Non je n'ai pas mis de int ou de float ?
      Où faut-il que je les mettent ?
      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Multi73 Messages postés 95 Statut Membre
         
        multi1 = int(input("Quel est le premier nombre de ta multiplication ?"))
        0
      2. Multi73 Messages postés 95 Statut Membre 2 > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Merci beaucoup !
        0
  3. Thibault
     
    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
    0