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**
Run Code Online (Sandbox Code Playgroud)
我不明白为什么"OR"运算符不起作用
问题不在于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]]):
Run Code Online (Sandbox Code Playgroud)
或者用括号括起整个东西:
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]])):
Run Code Online (Sandbox Code Playgroud)
PEP 8推荐后者.
| 归档时间: |
|
| 查看次数: |
227 次 |
| 最近记录: |