浏览codegolf时,我发现了这一点:
g=input();print("Approved","Summer School","Failed")[(g<7)+(g<3)]
Run Code Online (Sandbox Code Playgroud)
我不明白print()之后[]的含义是什么?
>>> print("Approved","Summer School","Failed")[0]
Approved
>>> print("Approved","Summer School","Failed")[1]
Summer School
>>> print("Approved","Summer School","Failed")[2]
Failed
Run Code Online (Sandbox Code Playgroud)
看到图案了吗?这只是简单的索引编制。
顺便说一句,我们总是知道(g<7)+(g<3)将是>= 0(False + False)和<= 2(True + True)。
回想这bool是和的子类int,True == 1并且False == 0(这就是我们可以添加的原因bool S,如上面完成)。
最后,不用多说,可以很容易避免这种混淆:
print(("Approved","Summer School","Failed")[(g<7)+(g<3)])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1056 次 |
| 最近记录: |