IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

'float' object is not subscriptable [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2016
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2016
    Messages : 32
    Par défaut 'float' object is not subscriptable
    bonjour à tous, l'erreur est dans le titre lorsque j'essaie cette fonction.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    import numpy as np
    from math import *
    r=115 # en mm
    e=800 # en mm
    delta_d=0.01
    delta_g=0.02
    p0=[1,1,0]
    def position_odometrie(delta_d,delta_g,p0):
        angle=p0[2]+(delta_d-delta_g)*r/(2*e)
        milieu=r*(delta_g+delta_p)/2
        return np.array([p0[0]+milieu*cos(angle),p0[1]+milieu*sin(angle),angle])
    J'ai bien essayé de "rendre" angle et milieu flottant mais l'erreur persiste.
    Si vous avez une solution, je suis preneur. Merci

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 681
    Par défaut
    Salut,

    'float' object is not subscriptable, veut dire que la variable p0 est un float et non une "séquence".
    On est sûr qu'il s’agit de p0 car c'est la seule à laquelle vous appliquez des [...]Et comme ce p0 est un argument de la fonction, c'est plutôt côté "appelant" qu'il y a soucis: la fonction fait ce qu'elle peut avec ce qu'on lui a donné.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2016
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2016
    Messages : 21
    Par défaut
    Bonjour,

    Je constate que dans le calcul de milieu, tu fais appel à delta_p, qui n'est pas connu de la fonction...

    Corrige déjà ça.

    @+

  4. #4
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2016
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2016
    Messages : 32
    Par défaut merci
    Citation Envoyé par Hrod69 Voir le message
    Bonjour,

    Je constate que dans le calcul de milieu, tu fais appel à delta_p, qui n'est pas connu de la fonction...

    Corrige déjà ça.

    @+
    effectivement ; merci pour votre perspicacité. Cependant, les erreurs renvoyées sont identiques.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    >>> position_odometrie(2,5,2)
    Traceback (most recent call last):
      File "<console>", line 1, in <module>
      File "C:partie informatique.py", line 13, in position_odometrie
        angle=p0[2]+(delta_d-delta_g)*r/(2*e)
    TypeError: 'int' object is not subscriptable
     
    >>> position_odometrie(0.2,0.5,2.0)
    Traceback (most recent call last):
      File "<console>", line 1, in <module>
      File "C:partie informatique.py", line 13, in position_odometrie
        angle=p0[2]+(delta_d-delta_g)*r/(2*e)
    TypeError: 'float' object is not subscriptable

  5. #5
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2016
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2016
    Messages : 32
    Par défaut
    Citation Envoyé par segolsed Voir le message
    effectivement ; merci pour votre perspicacité. Cependant, les erreurs renvoyées sont identiques.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    >>> position_odometrie(2,5,2)
    Traceback (most recent call last):
      File "<console>", line 1, in <module>
      File "C:partie informatique.py", line 13, in position_odometrie
        angle=p0[2]+(delta_d-delta_g)*r/(2*e)
    TypeError: 'int' object is not subscriptable
     
    >>> position_odometrie(0.2,0.5,2.0)
    Traceback (most recent call last):
      File "<console>", line 1, in <module>
      File "C:partie informatique.py", line 13, in position_odometrie
        angle=p0[2]+(delta_d-delta_g)*r/(2*e)
    TypeError: 'float' object is not subscriptable
    import numpy as np
    from math import *
    r=115 # en mm
    e=800 # en mm


    #Q18
    def position_odometrie(delta_d,delta_g,p0):
    angle=p0[2]+(delta_d-delta_g)*r/(2*e)
    milieu=r*(delta_d+delta_g)/2
    return np.array([p0[0]+milieu*cos(angle),p0[1]+milieu*sin(angle),angle])

    p1=position_odometrie(5,-5,[1,1,0])

    C'est bon je l'ai :

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. 'float'object is not iterable
    Par Mozard Yao dans le forum Général Python
    Réponses: 1
    Dernier message: 26/12/2013, 16h43
  2. equa diff : float object is not callable?
    Par souchi6 dans le forum Calcul scientifique
    Réponses: 3
    Dernier message: 08/01/2013, 17h29
  3. Réponses: 2
    Dernier message: 11/12/2006, 09h31
  4. Réponses: 1
    Dernier message: 20/04/2006, 12h09
  5. Object does not exist
    Par melmouj dans le forum Langage SQL
    Réponses: 1
    Dernier message: 25/08/2005, 09h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo