0

ばかげた質問かもしれませんが、If 条件に合計式を入れることができません。
A、B、Cの3行で構成される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])

数値が整数の場合は、 に置き換えfloatますint

于 2013-02-03T02:23:01.637 に答える
2

これは、A、B、C の両方string
が 2 つの文字列であるためです。2 つの文字列を合計するのではなく、+2 つを連結することを意味します。string

したがって、最初に数値に変換する必要があります

整数の場合は、次を使用して変換できます。

num = int(a)

フロートの場合は、次を使用して変換できます

num = float(a)

しかし、数値が浮動小数点数の場合、単純に比較することはできません==

これを参照して float の等価性を確認してください 浮動小数点の等価性のテスト

于 2013-02-03T02:25:28.347 に答える