一些if
和else
可以重写1并缩短2(codegolf样式),因为boolean在Python中可以充当整数。例如,if a<b:return a
可以重写为return("",a)[a<b]
。在
在这种情况下(我简化了可读性条件)
if a<b: print(a)
可以重写为以下两种:
^{pr2}$(如果忽略换行符,则可以使用end=""
)。在
我想减少一个变量n
(整个过程在while循环中,条件是n
),当{
if a<b:
print(a)
n-=1
同时使用上述语法技巧。
在C中,(n/n--)-1
不仅等于0,而且从n
中减去1。在Python中,我还没有找到这样做的方法。我尝试了一些无效的语法:
print(("",a+(n/n--)-1)[a<b])
(print(""),(print(a);n-=1))[a<b]
当条件为真时,如何使用此“技巧”递减变量(并打印a
)?
1,2,3:这些陈述并不总是正确的
Python不是C语言。首先,Python没有减量运算符,因此
print(n )
无法工作。另一方面,Python中的赋值是语句,而不是表达式,因此print(n-=1)
无法工作。在如果您确实希望print语句有副作用,它可以调用一个函数:
但是不要。没有人会认为你的print语句有副作用,所以当注释掉print语句改变程序结果时,每个人都会感到惊讶。在
编辑:我刚刚注意到这是一个代码高尔夫问题。那样的话,我的文体学建议就不是真的有效了。每个人都认为golfed代码很奇怪。在
如果您的目标是将},它们会短路。例如:
^{pr2}$if
语句改为表达式,那么就玩一下and
和{或者使用
if ... else
表达式相关问题 更多 >
编程相关推荐