Python any()测试中的SyntaxError
我对python语法非常陌生。。。在这种情况下,如何使用Python any()测试中的SyntaxError,python,python-3.x,syntax-error,any,or-operator,Python,Python 3.x,Syntax Error,Any,Or Operator,我对python语法非常陌生。。。在这种情况下,如何使用或运算符 为了检查文件是否以“.txt”或“.sm3dump”结尾,我尝试使用any(),但出现了一个语法错误: if any(filename.endswith('.txt'), filename.endswith('.sm3dump')) ^ SyntaxError: invalid syntax 我做错了什么
或运算符
为了检查文件是否以“.txt”或“.sm3dump”结尾,我尝试使用any()
,但出现了一个语法错误:
if any(filename.endswith('.txt'), filename.endswith('.sm3dump'))
^
SyntaxError: invalid syntax
我做错了什么?您用两个参数打电话:
any(filename.endswith('.txt'), filename.endswith('.sm3dump'))
# <----- argument #1 -----> <------- argument #2 ------->
使用any()
执行多个类似测试时,一个常见的习惯用法是使用or:
无论使用哪种测试,都需要记住用冒号结束if
语句:
if filename.endswith(('.txt', '.sm3dump')):
# do something ...
对于或运算符,只需键入或。如果
,请在末尾添加一个:
如果filename.endswith('.txt')或filename.endswith('.sm3dump'):
您可以使用google快速找到这一点……Eric:要发现Zero答案的最后一部分,请在交互式提示下使用帮助
,快速检查函数和类的签名和使用情况。特别是,>>帮助(str.endswith)
以“后缀也可以是要尝试的字符串元组”结尾。
filename.endswith('.txt') or filename.endswith('.sm3dump')
any([filename.endswith(ext) for ext in ('.txt', '.sm3dump')])
# <----------------- list comprehension ----------------->
any(filename.endswith(ext) for ext in ('.txt', '.sm3dump'))
# <-------- generator expression (no brackets) -------->
filename.endswith(('.txt', '.sm3dump'))
if filename.endswith(('.txt', '.sm3dump')):
# do something ...