2017-01-29 2 views
-2

属性 'latest_level'を持つクラスがあり、これは浮動小数点数でなければなりません。私は別の浮動小数点数を返す方程式にlatest_levelを含むメソッドを持っています。私はラインを使用する場合は、この方法では、:私はself.latest_levelがリストであることを意味すると仮定しPython 3:これは浮動小数点ですか、リストですか?

TypeError: float() argument must be a string or a number, not 'list' 

def relative_water_level(self): 
    level = float(self.latest_level) 

を私は出力が得られます。 デフrelative_water_level(自己):私はこの行を変更した場合

level = float(self.latest_level[0]) 

を私は出力を得る:私は仮定

TypeError: 'float' object is not subscriptable 

はself.latest_levelがfloatであることを意味します。誰もが、なぜこれが起こっているのか、どうすればself.latest_levelを浮動小数点として扱うことができるのか考えていますか?

編集:私は後で試してみません。この方法の残りの部分は次のとおりです。

level = float(self.latest_level[0]) 
     low = float(self.typical_range[0]) 
     high = float(self.typical_range[1]) 
     return ((level - low)/high) 

、エラーが__getitem__()メソッドを実装して何かを指しエラーが

File "C:\Users\rache\Documents\Flood Warning\partia-flood-warning 
system\floodsystem\station.py", line 58, in relative_water_level 
level = float(self.latest_level[0]) 

TypeError: 'float' object is not subscriptable 
+2

こんにちは、レイチェルとスタックオーバーフローへようこそ。この動作を検証できるように、この動作を示すコードを組み込むことが最善の方法です。それがなければ、私たちは本当に役に立つ答えを与えることができません(推測に頼らなくてはなりません)。あなたが下付き文字を浮かべるためにキャストした後、私たちは本当に知ることができません。 –

+0

こんにちはジム、助けてくれてありがとう。質問に余分なコードを追加します –

+2

これら2つのエラーの完全なエラースタックトレースを表示してください。これらのエラーが同じメソッドで発生している場合、メソッドは2回の異なる時刻に呼び出される可能性があります.'latest_level'は1回floatで、リストはもう1回です。 – poke

答えて

0

の添字オブジェクト上記の行であることを指定します。 latest_levelのタイプを変更している可能性があります。私は同じエラーを生成するサンプルコードを追加しました。

class Level: 
latest_level = 20.0 
def getLevels(self): 
    self.latest_level = [20,30] 
def relative_water_level(self): 
    level = float(self.latest_level[0]) 
    print(level) 

waterLevel = Level() 
waterLevel.relative_water_level() 
waterLevel.getLevels() 
waterLevel.relative_water_level() 

フロート(self.latest_level)前に、使用タイプ(self.latest_level)をデバッグするための及び変更トレースを積層する方法。

+0

デバッグの良いアイデアです。 latest_levelは実際には浮動小数点型であると言われています。私はそれがなぜ方程式で使用したいのかをリストとして扱う理由を理解できません。ご協力いただきありがとうございます! –

+0

コードを見て、明らかにそのタイプをどこかで変更する必要があります。あなたは私にコードをどこかに見せてもらえますか? – Harry

0

問題を解決しました。データをインポートしている洪水モニタリングステーションの一部が、その場所の数字のリストを持つ混乱したデータを生成していることが分かります。そのため、今はそれらのステーションを無視しなければなりませんでした。それらの川の近くに住んでいるあなたのいずれかにあなたのすべての助けと幸運のおかげで!

関連する問題