是否有更好、更有凝聚力的方法来实现pace_points所做的功能?伪代码是:每一个x数越低,pace的返回值就越高。
下一步伪代码将是:根据某种分布(例如指数),pace的每一个x数越低,返回值就越高。
def pace_points(pace: float):
if pace >= 6.5:
return 0.5
elif 6 <= pace < 6.5:
return 1
elif 5.5 <= pace < 6:
return 2
elif 5 <= pace < 5.5:
return 3
elif 4.5 <= pace < 5:
return 4
elif 4.0 <= pace < 4.5:
return 5
else:
return 10发布于 2021-11-14 19:18:34
下面以更紧凑的形式表达逻辑:
import math
def pace_points(pace):
p = math.ceil(2*(6.5-pace))
return 0.5 if p <= 0 else 10 if p > 5 else p跟进:下面是@DanielHao的评论,只是想清楚说明代码的功能。
math.ceil返回传递参数所传递的最接近的整数更高的。它与round不同,后者只返回最接近的整数。例如,argument.math.ceil(2 * (6.5 - pace)) (2.3)为3,圆形(2.3)为2。( math.ceil的“姐妹”函数为math.floor,它返回的整数比传递的math.ceil低,它是一个函数,它在(0,4.5] interval.if...else...else中负责处理区间外的返回值。)。
https://stackoverflow.com/questions/69966285
复制相似问题