9
votes

TypeError: l'objet 'int' est inscrit

dans Python I Obtenir cette erreur:

for quote in sector[singlestock]:
        i+=1
        if i < len(sector):
            if i==0:
                sectorcalc[i][0]= quote[0]
                sectorcalc[i][2]= 0
                sectorcalc[i][3]= 0
                sectorcalc[i][4]= 0
                sectorcalc[i][5]= 0
                sectorcalc[i][6]= 0
                sectorcalc[i][7]= 0
            else:                    
                yesterday = sector[singlestock-1][i]

                print yesterday                                

                today = quote

                print type(today[2])
                sectorcalc[i][2]= ((today[2]/yesterday[2])-1)
                sectorcalc[i][3]= (today[3]/yesterday[3])-1
                sectorcalc[i][4]= (today[4]/yesterday[4])-1
                sectorcalc[i][5]= (today[5]/yesterday[5])-1 
                sectorcalc[i][6]= (today[6]/yesterday[6])-1
                sectorcalc[i][7]= (today[7]/yesterday[7])-1


3 commentaires

(Comme @duffymo suggère :) sans rapport avec l'erreur, vous devez accomplir des boucles supplémentaires;)


L'un d'entre eux n'est pas peu éclairé 1) SecteurCalc [I] 2) aujourd'hui, 3) hier. Vous avez déjà dit aujourd'hui est une liste. Vérifiez les autres.


Bon point, vraiment juste un produit de mon manque d'expérience avec Python ne pas avoir normal pour les boucles


3 Réponses :


14
votes

le "[2]" dans aujourd'hui [2] est appelé indice.

Cet usage n'est possible que si "aujourd'hui" est un type de séquence. Séquence native Types - Liste, Chaîne, Tuple, etc.

Puisque vous obtenez une erreur - l'objet 'int' est inscrit. Cela signifie que "aujourd'hui" n'est pas une séquence mais un objet de type INT.

Vous devrez trouver / déboguer pourquoi "aujourd'hui" ou "hier" est un objet de type INT lorsque vous attendez une séquence.

[EDIT: pour préciser]

erreur peut être dans

  1. SecteurCalc [I]
  2. aujourd'hui (déjà prouvé est une liste)
  3. hier

5 commentaires

Merci pour votre aide, mais quand j'imprime aujourd'hui: ['amng', datetime.datetime (2009, 1, 5, 0, 0), 59.2199999999999999999999999999999999999999999999999999, 10940100.0, 59.6499999999999999] N'est-ce pas une séquence?


La ligne avant celle qui échoue ( type d'impression (aujourd'hui [2]) ) fonctionne évidemment bien et des indications aujourd'hui . Donc, il doit être souscrit.


@ B8B8J: Une erreur pourrait être que "aujourd'hui" ou "hier" n'est pas une séquence. L'erreur est dans la ligne et vous devrez déterminer lequel provoque l'erreur.


@delnan: De l'apparence de celui-ci "hier" semble inscrit.


Hmm ... cela a du sens mais quand j'ajoute ce type d'impression (hier) Imprimer hier [2], j'ai , 17.79 et l'erreur est en ligne après cela?



2
votes

Ceci est déroutant de lire: xxx

est aujourd'hui = datetime.date.today () ? Pourquoi une date fera-t-elle soudainement référence à une citation? Si le nom de la variable est quotefortoday ou quelque chose de plus expressif? Idem pour hier . Diviser deux dates comme vous ne direz pas de sens pour moi.

Comme il s'agit d'un ciote , aujourd'hui et hier hier se référer à des prix ou des tarifs à différents jours? Noms compte - choisissez-les soigneusement. Vous serez peut-être celui qui doit conserver cela six mois à partir de maintenant, et vous ne vous souviendrez pas de ce qu'ils veulent dire, non plus.

Pas que le code que vous avez écrit est valide, mais je ne vois pas pourquoi Vous n'utiliseriez pas de boucle. xxx

au lieu de xxx


1 commentaires

Une autre alternative consiste à utiliser la tâche de la tranche: sectorialCalc [I] [2: 7] = [(T / Y) - 1 pour T, Y dans Zip (aujourd'hui [2: 7], hier [2: 7]) ] , une autre alternative consiste à remplacer par une nouvelle liste (bien que cela ait une sémantique légèrement différente): SecteurCalc [i] = [devis [0], 0, 0, 0, 0, 0, 0 , 0]



1
votes

Comment reproduire cette erreur: strong> xxx pré>

Les personnes qui ont écrit le compilateur a déclaré que vous ne pouvez pas faire cela de la manière suivante: fort> p> xxx pré>

Si vous souhaitez indiquer quelque chose, utilisez un tableau comme celui-ci: strong> p>

57


0 commentaires