0

这可能是一个愚蠢的问题,但我无法将求和表达式放在 If 条件中。
我处理由 3 行 A、B 和 C 组成的 CSV 文件。

这是我的代码:

#import and export files

test = "/home/julien/excel/test.csv"
file1 = open (test, 'rb')

export_test = "/home/julien/excel/export_test.csv"
file2 = open (export_test, 'wb')

reader1 = csv.reader (file1, delimiter = ';', quotechar=' ')
writer1 = csv.writer (file2, delimiter= ';', quotechar=' ')


#conditions on test.csv

for row1 in reader1:
    A = row1[0]
    B = row1[1]
    C = row1[2]

    if (A + B) == C:
        writer1.writerow (["calcul ok"])
    else:
        writer1.writerow (["fail"])

问题是我只有“失败”的结果,而它不应该。

你可以帮帮我吗 ?谢谢 !

4

2 回答 2

6

将字符串转换为数字:

A = float(row1[0])
B = float(row1[1])
C = float(row1[2])

或更简洁地说:

A, B, C = map(float, row1[:3])

如果您的数字是整数,请替换floatint.

于 2013-02-03T02:23:01.637 回答
2

这是因为 A、B 和 C 都是string
当你+两个字符串时,这意味着你连接两个string而不是对它们求和。

因此,您需要先将其转换为数字

如果它是一个整数,您可以使用以下方法进行转换:

num = int(a)

如果它是一个浮点数,您可以使用它进行转换

num = float(a)

但是如果数字是浮动的,你不能只使用它来比较它==

请参考this检查float的相等性 测试浮点相等性

于 2013-02-03T02:25:28.347 回答