Some if
and else
's can be rewritten1 and shortened2 (codegolf-style) likewise, because booleans can act as integers in Python. For example if a<b:return a
can be rewritten3 as return("",a)[a<b]
.
在这种情况下(我简化了可读性的条件),
if a<b: print(a)
可以重写为以下两种形式:
print(("",a)[a<b])
(print(""),print(a))[a<b]
(如果我们忽略换行符,否则end=""
可以使用)。
我想减少一个变量n
(整个事情是在一个 while 循环中n
在其状态下)当a<b
是最重要的,例如。
if a<b:
print(a)
n-=1
使用上面的语法技巧时。
在C中,(n/n--)-1
不仅等于0,还减去1n
。在Python中,我还没有找到一种方法来做到这一点。我尝试过一些无效的语法:
print(("",a+(n/n--)-1)[a<b])
(print(""),(print(a);n-=1))[a<b]
如何递减变量(并打印a
)当条件为真时使用这个“技巧”?
1,2,3: these statements aren't always true