TypeError: Das Objekt 'int' unterstützt keine Artikelzuweisung

8

Warum bekomme ich diesen Fehler?

%Vor%

Code:

%Vor%     
Ris 11.02.2013, 03:05
quelle

1 Antwort

14

Sie übergeben eine Ganzzahl an Ihre Funktion als a . Sie versuchen dann, es zuzuweisen: a[k] = ... , aber das funktioniert nicht, da a ein Skalar ist ...

Es ist das gleiche, als ob Sie es versucht hätten:

%Vor%

Diese Aussage macht nicht viel Sinn und Python würde dich auf die gleiche Weise (vermutlich) anschreien.

Auch macht ++k nicht das, was du denkst - es wird als (+(+(k))) geparst - d. h. der Bytcode ist nur UNARY_POSITIVE zweimal. Was Sie eigentlich wollen, ist etwas wie k += 1

Seien Sie schließlich vorsichtig mit Aussagen wie:

%Vor%

Die Klammern, die Sie mit print verwenden, legen nahe, dass Sie dies zu einem bestimmten Zeitpunkt auf python3.x verwenden möchten. aber x/y verhält sich auf python3.x anders als auf python2.x. Wenn ich den Algorithmus betrachte, denke ich, dass Sie Integer-Division wollen (da Sie q != 0 überprüfen, was schwer mit Floats zu erfüllen wäre). Wenn dies der Fall ist, sollten Sie Folgendes in Betracht ziehen:

%Vor%

, die eine ganzzahlige Division für python2.x und python3.x durchführt.

    
mgilson 11.02.2013, 03:07
quelle

Tags und Links