首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于连续参数python的返回值

基于连续参数python的返回值
EN

Stack Overflow用户
提问于 2021-11-14 19:07:54
回答 1查看 26关注 0票数 0

是否有更好、更有凝聚力的方法来实现pace_points所做的功能?伪代码是:每一个x数越低,pace的返回值就越高。

下一步伪代码将是:根据某种分布(例如指数),pace的每一个x数越低,返回值就越高。

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-14 19:18:34

下面以更紧凑的形式表达逻辑:

代码语言:javascript
复制
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.
  • The最终if...else...else中负责处理区间外的返回值。

)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69966285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档