一行如果else语句拒绝工作

时间:2017-06-11 05:53:02

标签: python python-3.x if-statement syntax syntax-error

很抱歉提交这么小的问题,但它让我疯了。我有这一行永久地给我语法错误:

print(BDF) if header is 1

我也试过这个:

print(BDF) if (header == 1)

这是完整的功能:

def CSVtoDict(BDF, prune, header):
    # Comes with the option to prune [] and to use headers
    with open('%s%s.csv' % (dataDir,BDF), mode='r') as infile:
        reader = csv.reader(infile)
        saved = {}
        for row in reader:
            key = row[0]
            saved[key] = [r for r in row[1:] if not (r is '' and prune is 1)]
        print(BDF) if header is 1
    return saved

可能导致这种情况的原因是什么?我正在调用函数:

adsMut = CSVtoDict(BaseDataFiles[0],1,1)

一切似乎都井然有序,每次都只给我语法错误。

3 个答案:

答案 0 :(得分:6)

你必须为这一个班轮提供else条款。以下行将起作用:

print(BDF) if header is 1 else None

答案 1 :(得分:6)

您使用单行if格式有什么特殊原因吗?更常见的格式是:

if header == 1:
    print (BDF)

答案 2 :(得分:2)

a if condition else b

使用python的三元条件运算符