0

我的 IF ELSE 语句有什么问题?

IF NOT 条件,做 A. ELSE,做 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

一个明显的问题是您的列表包含字符串,而您的代码需要数字。在 Python 中,您可以进行比较0"0"它们比较不相等)。

一种解决方法:

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 回答