Python 这样做更优雅吗?
非常简单的一段代码,但看起来很冗长。有没有更好的方法可以在同一行中实现这一点?只是出于好奇。它在Python3.5中Python 这样做更优雅吗?,python,python-3.x,Python,Python 3.x,非常简单的一段代码,但看起来很冗长。有没有更好的方法可以在同一行中实现这一点?只是出于好奇。它在Python3.5中 if predictedClassification >= 0.5: predictedClassification = 1 else predictedClassification = 0 您可以这样写: predictedClassification = 1 if predictedClassification >= 0.5 else 0 您可以在
if predictedClassification >= 0.5:
predictedClassification = 1
else
predictedClassification = 0
您可以这样写:
predictedClassification = 1 if predictedClassification >= 0.5 else 0
您可以在一行中使用
if
/else
语句,如下所示:
predictedClassification = 1 if predictedClassification >= 0.5 else 0
带有:
如果表达式为True
,则结果等于1
,否则为0
predictedClassification = 10
predictedClassification = 1 if predictedClassification >= 0.5 else 0
print(predictedClassification)
1
四舍五入有一个古老的基本编程技巧:
rounded = int(float_num + 0.5)
这取决于只截断小数点的int
函数。对于Python和您的特定示例:
predictedClassification = int(predictedClassification + 0.5)
注意:对于负片要小心(并进行测试)。如果您的predictedClassification为负数,您希望向零舍入/截断还是远离零?也就是说,-.5的PC是变成-1还是0?这是一个领域问题(意味着你必须做出决定),但语言可能会让事情变得复杂。我正在考虑通过添加
0.5
来提供一个int
四舍五入的答案,以删除条件。但后来我想,如果这个数字大于等于1.5
,那么它就等于2
,或者更大,而不是1
。这和你在便条中提到的,使我无法理解。好答案。
predictedClassification = int(predictedClassification + 0.5)