Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 这样做更优雅吗?_Python_Python 3.x - Fatal编程技术网

Python 这样做更优雅吗?

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 您可以在

非常简单的一段代码,但看起来很冗长。有没有更好的方法可以在同一行中实现这一点?只是出于好奇。它在Python3.5中

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)