gpt4 book ai didi

python - 使用 str.endswith() 进行条件检查

转载 作者:行者123 更新时间:2023-11-28 21:49:47 24 4
gpt4 key购买 nike

我有以下字符串

mystr = "foo.tsv"

mystr = "foo.csv"

鉴于这种情况,我希望上面的两个字符串始终打印“OK”。但是为什么会失败呢?

if not mystr.endswith('.tsv') or not mystr.endswith(".csv"):
print "ERROR"
else:
print "OK"

正确的做法是什么?

最佳答案

失败是因为 mystr 不能同时以 .csv.tsv 结尾。

因此,其中一个条件等于 False,当您使用 not 时,它变为 True,因此您得到 ERROR。你真正想要的是 -

if not (mystr.endswith('.tsv') or mystr.endswith(".csv")):

或者您可以使用 De-Morgan's law 来使用 版本, 这使得 not (A or B) 变成了 (not A) and (not B)


此外,正如问题中的评论所述,str.endswith()接受要检查的后缀元组(因此您甚至不需要 条件)。示例 -

if not mystr.endswith(('.tsv', ".csv")):

关于python - 使用 str.endswith() 进行条件检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32982593/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com