0

IF ELSEステートメントの何が問題になっていますか?

条件がない場合は、Aを実行します。それ以外の場合は、Bを実行します。

しかし、結果は私が予想したものとはかなり異なっていることがわかりました。:S

data['stock'] = ['0.02', '0.03', '0.04', '0.00', '0.05', '0.04', '0.05']

x = 0
y = len(data['Keywords'])

while x <= y - 1:
    if data['stock'][x] != 0:
        print data["stock"][x]
        a = a + 1
    else:
        print "hello"
        a = a + 1

Output:
0.02
0.03
0.04
0.00
0.05
0.04
0.05
4

2 に答える 2

11

'0.00'文字列です。 0は数字です。これらは等しくありません。

于 2012-12-16T20:35:11.530 に答える
8

明らかな問題の1つは、リストに文字列が含まれていて、コードが数値を予期していることです。Pythonでは、と比較することができます0"0"比較は等しくありません)。

それを修正する1つの方法:

data['stock'] = [0.02, 0.03, 0.04, 0.00, 0.05, 0.04, 0.05]

また、そのループは明らかに非Pythonicに見えます。最初のステップは、次のように言い換えることです。

for x in range(len(data['Keywords'])):
    if data['stock'][x] != 0:
        print data["stock"][x]
    else:
        print "hello"

xリストへのインデックス作成に以外の値を使用しない場合、カウンターは不要です。

for val in data["stock"]:
    if val != 0:
        print val
    else:
        print "hello"

data["Keywords"]これは、が同じ長さと。であることを前提としていることに注意してくださいdata["stock"]。そうでない場合、このコードはあなたのコードと同等ではありません。

于 2012-12-16T20:35:29.320 に答える