python中的“OR”操作导致语法无效

2024-05-14 15:19:18 发布

您现在位置:Python中文网/ 问答频道 /正文

straightrunfaces = 'A23456789TJQKA';
for i in range(0,10):
        if ((counts[straightrunfaces[i]] and 
             counts[straightrunfaces[i+1]] and 
             counts[straightrunfaces[i+2]] and 
             counts[straightrunfaces[i+3]])) or
            ((counts[straightrunfaces[i+1]] and 
             counts[straightrunfaces[i+2]] and 
             counts[straightrunfaces[i+3]] and 
             counts[straightrunfaces[i+4]])):



C:\datasci_course_materials\assignment3>python poker.py
  File "poker.py", line 62
    counts[straightrunfaces[i+3]])) or
                                     ^
**SyntaxError: invalid syntax**

我不明白为什么“或”接线员不工作


Tags: orandinpyforifrangematerials
2条回答

尝试:

straightrunfaces = 'A23456789TJQKA';
for i in range(0,10):
    if all(counts[straightrunfaces[i]], counts[straightrunfaces[i+1]], counts[straightrunfaces[i+2]], counts[straightrunfaces[i+3]]) or all(counts[straightrunfaces[i+1]], counts[straightrunfaces[i+2]], counts[straightrunfaces[i+3]], counts[straightrunfaces[i+4]]):

问题不是or,而是结尾的换行。不再有左括号,因此换行符终止if语句;但是,对于解析器,if语句必须以冒号结尾,而您的则不是。在

或者添加一个显式的行延续:

if (counts[straightrunfaces[i]] and 
    counts[straightrunfaces[i+1]] and 
    counts[straightrunfaces[i+2]] and 
    counts[straightrunfaces[i+3]]) or \
   (counts[straightrunfaces[i+1]] and 
    counts[straightrunfaces[i+2]] and 
    counts[straightrunfaces[i+3]] and 
    counts[straightrunfaces[i+4]]):

或者用括号括起来:

^{pr2}$

PEP 8推荐后者。在

相关问题 更多 >

    热门问题