【问题标题】:reduce the a if-elif-else code in a function减少函数中的 if-elif-else 代码
【发布时间】:2022-12-31 21:05:10
【问题描述】:

我正在使用 python 编写代码。我正在使用 if-elif-else 条件。代码看起来不太好。还有其他方法可以编写代码吗?

def my_fun(x):
    if x<=200:
        x=0.2
    elif 201<=x<=300:
        x=0.3
    elif 301<=x<=400:
        x=0.4
    elif 401<=x<=500:
        x=0.5  
    elif 501<=x<=600:
        x=0.6
    elif 601<=x<=700:
        x=0.7
    elif 701<=x<=800:
        x=0.8
    elif 801<=x<=900:
        x=0.9
    elif 900<=x<=1000:
        x=1
    else:
        x=1.5 
    return x
courier_invoice['x_weight_slab'] = courier_invoice['weight by company'].apply(my_fun)

还有其他方法可以写这个函数吗?

【问题讨论】:

  • x 是否总是像 201 这样的整数,或者输入可能是像 200.5 这样的浮点数?
  • 实际上,如果 x 在 201 和 300 之间,则需要返回值 0.3

标签: python


【解决方案1】:

试试这个函数,它将计算值并返回 四舍五入到小数点后一位

def func(x):
    if x <= 200:
        return .2;
    elif x <= 1000:
        return round(((x+99) // 100) * 0.1, 1);
    return 1;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-03
    相关资源
    最近更新 更多