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 Réponses :
le "[2]" dans aujourd'hui [2] est appelé indice. strong> p>
Cet usage n'est possible que si "aujourd'hui"
est un type de séquence. Séquence native
Types - Liste, Chaîne, Tuple, etc. P>
blockQuote>
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. p>
Vous devrez trouver / déboguer pourquoi "aujourd'hui" ou "hier" est un objet de type INT lorsque vous attendez une séquence. strong> p>
[EDIT: pour préciser] p>
erreur peut être dans p>
blockQuote>
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]) code>) fonctionne évidemment bien et des indications
aujourd'hui code>. 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
Ceci est déroutant de lire: est Comme il s'agit d'un Pas que le code que vous avez écrit est valide, mais je ne vois pas pourquoi Vous n'utiliseriez pas de boucle. p> au lieu de p> aujourd'hui = datetime.date.today () code>? Pourquoi une date fera-t-elle soudainement référence à une citation? Si le nom de la variable est
quotefortoday code> ou quelque chose de plus expressif? Idem pour
hier code>. Diviser deux dates comme vous ne direz pas de sens pour moi. P>
ciote code>,
aujourd'hui code> et
hier code> hier code> 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. P>
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]) ] code>, 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] code>
Les personnes qui ont écrit le compilateur a déclaré que vous ne pouvez pas faire cela de la manière suivante: fort> p> Si vous souhaitez indiquer quelque chose, utilisez un tableau comme celui-ci: strong> p> 57
(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