Python 3.x Python3:复合continue语句的正确格式是什么。x和(y或z)

Python 3.x Python3:复合continue语句的正确格式是什么。x和(y或z),python-3.x,conditional,Python 3.x,Conditional,我的程序读取文件名,并根据文件名对其行数进行分类。我目前正在尝试对我的代码进行防错处理,以报告任何经常出现的不是.txt或.xlsx的文件。我之所以这样问,而不仅仅是以else语句结束,是因为它需要定期筛选需要类似语句的.zip、.csv、.xls。我在另一种语言中发现了这个问题,但我不明白如何将它翻译成python 我想让python理解的是: 如果: x是必需的,并且(y或z) 所以它需要两件事,但第二件事是灵活的 if os.path.isfile(fname) and file.ends

我的程序读取文件名,并根据文件名对其行数进行分类。我目前正在尝试对我的代码进行防错处理,以报告任何经常出现的不是.txt或.xlsx的文件。我之所以这样问,而不仅仅是以else语句结束,是因为它需要定期筛选需要类似语句的.zip、.csv、.xls。我在另一种语言中发现了这个问题,但我不明白如何将它翻译成python

我想让python理解的是:

如果: x是必需的,并且(y或z)

所以它需要两件事,但第二件事是灵活的

if os.path.isfile(fname) and file.endswith != ".txt" or file.endswith != ".xlsx":
  cant_read += 1
我的逻辑尝试是:

x = 2
z = 2
y = 3
w = 2

if x == z and (x == (y or w)):
    print(True)
else:
    print(False)
如果y和w被交换,这个代码逻辑会给出False as is和True。y=2,w=3

现在我只把它用作一个错误计数器,但我很快就会把它用于其他扩展


谢谢,如果有人能给我解释一下格式的话,它已经在我的“要弄清楚”列表上有一段时间了

只要把它们复合起来,你几乎就可以做到:
如果os.path.isfile(fname)和(file.endswith!=“.txt”或file.endswith!=“.xlsx”):…
,对于多个相等性检查,你可以使用:
如果x==z和x==z和(x==(y或w))
只有在
x==true
z==true
,或者
x==False
z==False
,但是没有别的,因为
(y或w)
返回
True
False
。这会有帮助吗:
file.lower().endswith(“.png”,“.jpg”,“.jpeg”,“任何扩展名”)
,因为你可以使用元组来存储你想要修剪的所有潜在扩展名?谢谢@Chen,我试试看。谢谢zwer,这样效果更好,但我还需要更多地阅读声明中的内容