python 化简函数中的if-elif-else代码

dwthyt8l  于 2023-01-01  发布在  Python
关注(0)|答案(3)|浏览(153)

我用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)

有没有其他方法来编写这个函数?

uqzxnwby

uqzxnwby1#

试试这个函数,它将计算值,并通过四舍五入返回到1个小数点

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

w8f9ii692#

试试这个

import math
def my_fun(x):
    x = -x
    if x >= -200:
        return 0.2
    elif x >= -1000:
        return -math.floor(x/100)/10
    return 1.5
8iwquhpp

8iwquhpp3#

尝试一个简单的数学逻辑函数:

def my_fun(x):
    if 900 < x <= 1000:
        return 0.1
    elif x <= 200:
        return 0.2
    return min(((x // 100) / 10) + (x % 100 != 0 and 0.1), 1)

相关问题