Python中的if同时使用'or'、'and'和'not'合法吗?

-4 投票
1 回答
49 浏览
提问于 2025-04-14 17:05

我遇到了“语法错误”的问题。

我正在尝试解析一个文件,这个文件在我需要的数据前后都有一些杂乱的内容。

每个大小的文件中,标题都在第71行。

数据从第103行开始。

我的数据结束的位置总是比总行数少7行。

我想用一个if语句来检查,确保在第71行获取标题,从第103行开始获取数据,但不能超过结束位置的7行之前。

如果在这个范围内,就把数据保存到一个名为test.txt的文本文件中。

下面是代码:

import fileinput

import time 
filename = '1.csv'

with open(filename) as file:

    lines = file.readlines()

line_count = len(lines)
   
end = line_count - 7


print('line_count is:')
print (line_count)  

print('end is')
print (end)

time. sleep (3.0)

count = 0
filename = '1.csv'

for lines in fileinput.input([filename]):
    if count == 71 or count >= 103 and not >= end:
        print (lines),
        print(count),
        count = count + 1,
        with open("test.txt", "w") as f:
            f.write(str(lines))

1 个回答

1

用简单的话来说,我们可以这样说:

如果X大于等于103,并且不大于等于Y

... 大家都明白X是这两个条件的主角,因为英语就是这么运作的。

但是在Python中,情况就不一样了。

这段代码会出错

count >= 103 and not >= end
                    ^
                    |
                    |
because you are missing a value right here

你必须把两个比较条件都写完整:

count >= 103 and not count >= end

撰写回答