浏览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 次 |
最近记录: |